我想创建一个接收实际类而不是该类实例的接口。像这样的东西:
class checkIfGonextPage{
localResult;
next;
constructor(localResult:string,next:string){
this.localResult=localResult;
this.next=next;
}
}
interface comp{
CheckifCanGoNext: checkIfGonextPage;
}
let x:comp ={"CheckifCanGoNext":checkIfGonextPage}
let f = new x["CheckifCanGoNext"]("sss","")
console.log(f.localResult);
如果我将CheckifCanGoNext设置为任何值,它将起作用,但是我将丢失该类型。
您始终可以使用typeof
类型查询运算符来获取特定命名值的类型。如果要将名称实际的值(CheckIfGonextPage
类构造函数)放在的CheckifCanGoNext
属性中Comp
,则可以将该类型引用为typeof CheckIfGonextPage
:
interface Comp {
CheckifCanGoNext: typeof CheckIfGonextPage;
}
let x: Comp = { "CheckifCanGoNext": CheckIfGonextPage }
let f = new x["CheckifCanGoNext"]("sss", "")
您还可以使用构造签名来描述可以由new
操作员调用的内容。它看起来像一个函数调用签名,但new
前面带有单词:
interface Comp {
CheckifCanGoNext: new (localResult: string, next: string) => CheckIfGonextPage
}
let x: Comp = { "CheckifCanGoNext": CheckIfGonextPage }
let f = new x["CheckifCanGoNext"]("sss", "");
两种方法都应该起作用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句