是否可以在界面中使用类似类型的类?例如,我有一个类Animal,我可以使用类似的东西:
interface I {
object: Animal
}
我在这种情况下遇到错误:
class A {
public static foo(text: string): string {
return text;
}
}
interface IA {
testProp: A;
otherProp: any;
}
class B {
constructor(prop: IA) {
console.log(prop.otherProp);
console.log(prop.testProp.foo('hello!'));
}
}
TS2339:“A”类型中不存在“foo”属性
答案 0 :(得分:0)
您需要使用typeof A
:
class A {
public static foo(text: string): string {
return text;
}
}
interface IA {
testProp: typeof A;
otherProp: any;
}
class B {
constructor(prop: IA) {
console.log(prop.otherProp);
console.log(prop.testProp.foo('hello!'));
}
}
答案 1 :(得分:0)
代码中的问题是foo方法是静态的。静态只能用于不是对象的类。
在你的情况下:
A.foo("hello); //works
new A().foo("hello"); //doesn't work since it's an instance of A