Sto tentando di testare un esempio piuttosto forzato nel parco giochi su Typescriptlang.org. La mia interfaccia INewable specifica un argomento del costruttore di stringa singola. Nel corpo del mio metodo factory non rispetto questo vincolo (usando un numero o chiamando con una lista di argomenti void). Non ricevo un errore per quanto riguarda l'avviso o l'avvertimento.Dattiloscritto: nuovo() Contratto di interfaccia non applicato
Ho fatto qualcosa di sbagliato o si tratta di un bug?
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());
EDIT: La forma più semplice:
function createInstance<T>(ctor:new(s:string)=>T):T {
return new ctor(42); //why doesn't this fail either
}
presenta lo stesso problema.