如何确保泛型T
实现某个属性?
export class Helicopter<T> implements IFlyable<T> {
constructor(private _value : T) {
//something
}
get listOfEngines(): string[] {
return _value.listOfEngines;
}
}
目前编译器抱怨类型T
没有属性listOfEngines
答案 0 :(得分:4)
您正在寻找的是约束:
http://www.typescriptlang.org/docs/handbook/generics.html#generic-constraints
只需指定T必须扩展的类型或接口,如手册中所示。
export class Helicopter<T extends IVehicle> implements IFlyable<T> {}
答案 1 :(得分:3)
创建一个界面并为类型参数extends
添加T
限制:
export interface IHelicopterStructure {
listOfEngines:string[];
}
export class Helicopter<T extends IHelicopterStructure> extends Structure implements IFlyable<T> {
...
}