Перегрузка функций по значению аргументов
От: _NN_ www.nemerleweb.com
Дата: 27.08.13 07:29
Оценка:
TypeScript позволяет аргументам функции иметь разные типы в зависимости от значения аргументов.

Вот пример:
interface HTMLElement {
}
interface HTMLCanvasElement extends HTMLElement {
}
interface HTMLDivElement extends HTMLElement {
}
interface HTMLSpanElement extends HTMLElement {
}

interface Document {
  createElement(tagName: string)  : HTMLElement;
  createElement(tagName: 'canvas'): HTMLCanvasElement;
  createElement(tagName: 'div')   : HTMLDivElement;
  createElement(tagName: 'span')  : HTMLSpanElement;
 }


А есть ли еще языки, которые такое позволяют ?
И возможно ли это эмулировать на "обычных" языках с номинативной типизацией ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.