Дженерики в TypeScript - программирование
Подтвердить что ты не робот

Дженерики в TypeScript

Есть ли способ параметризовать тип с другим типом в TypeScript помимо использования типизированных массивов?

Это действительно необходимо с KnockoutJs.

4b9b3361

Ответ 2

Дженерики пока не поддерживаются, хотя они рассматриваются. Здесь, что спецификация должна сказать:

ПРИМЕЧАНИЕ: TypeScript в настоящее время не поддерживает Generics, но мы ожидаем включить их на конечном языке. Поскольку система статического типа TypeScript s не имеет проявления во время выполнения, Generics будет основываться на "стирании типа", и предназначенный исключительно как канал для выражения отношений параметрического типа в интерфейсах, классах и функциональные сигнатуры.

Из спецификации языка TypeScript в конце раздела 3.

Ответ 3

Я использую довольно грязное обходное решение. Можно присвоить класс переменной типа any. Этот код действителен:

class A{}
var test:any=A;
var a=new test();

Итак, вы можете параметризовать свои методы, добавив еще один параметр типа any

function(param:any){
    var test=new param();
    test.someFunction();
}

Конечно, это очень плохой стиль и, вероятно, не рекомендуется. Но для меня это будет охватывать время, пока дженерики не будут включены в язык.