Машинопись: расширяющая встроенные типов

голоса
14

как же увеличить один из типов «встроенных»? например, массив?

В JS, я хотел бы сделать что-то вроде

Array.prototype.shuffle = function () { ... };

что эквивалентно в машинописи?

Задан 03/10/2012 в 05:05
источник пользователем
На других языках...                            


1 ответов

голоса
20

Типы являются «открытыми концами» в машинописном, так что вы можете просто написать:

interface Array {
  shuffle: () => any; // <-- Whatever signature you want.
}

И тогда типа расширяется, чтобы включить новую функцию (и вы можете назначить функцию, соответствующую подпись к нему).

Однако следует отметить , что расширение встроенных типов (те , в lib.d.ts - например, массив) имеет проблемы в настоящее время на службе языка, так как он кэширует те внутренне причины перфорации. Есть обходной путь , который я написал вверх на http://typescript.codeplex.com/workitem/4 расширить встроенные типов без ошибок на службе языка в VS.

Ответил 03/10/2012 в 05:23
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more