У меня есть словарь класса, и я хотел бы сделать следующее:Могу ли я использовать generic для вызова его конструктора?
export class Dictionary<K, V> {
private table:{ [key: string]: IDictionaryPair<K, V> };
private nElements:number;
constructor(src:Dictionary<K, V>) {
for (var item in src.table)
if (src.hasOwnProperty(item)) {
windward.trap();
var valCopy = new V(src[<string>item]);
this.setValue(<K>item, valCopy);
}
}
}
Это все отлично работает, кроме «вар valCopy = новый V (ЦСИ [пункт]);» не допускается. Есть ли способ сделать это? Поскольку, если тип V имеет конструктор копирования, то это все допустимо, включая проверку типов.
Есть ли способ сделать это?
спасибо - Дэйв
V - это параметр типа, а не тип. Невозможно узнать, как выглядят конструкторы, пока вы не примените их к определенному типу. –