Tipik olarak hazırlanmış bir örneği Kidscriptlang.org'daki oyun alanında test etmeye çalışıyorum. INewable arayüzüm, tek bir string yapıcı argümanını belirtir. Fabrika yöntemimin gövdesinde bu kısıtlamaya uymuyorum (bir numara kullanarak veya geçersiz bir argüman listesiyle arama yaparak). Dalgalı veya uyarı hatası almıyorum.Typescript: new() Arabirim sözleşmesi zorlanmamış
Yanlış bir şey mi yaptım yoksa bu bir hata mı?
interface INewable<T> {
new(param: string): T;
}
interface IToStringable {
toString(): string;
}
module Factory {
export function createInstance<T extends IToStringable>(ctor: INewable<T>): T {
return new ctor(1024); //why doesn't this fail?
}
}
var d = Factory.createInstance(Function);
alert(d.toString());
DÜZENLEME: daha basit formu:
function createInstance<T>(ctor:new(s:string)=>T):T {
return new ctor(42); //why doesn't this fail either
}
sergiler aynı hata.