我正在寫的class
的許多方法暗含有相同的function type。我想要做的就是執行這個函數類型,以便我可以明確地聲明某些方法必須符合函數類型。如何在打字稿的類方法上強制實現函數類型接口?
例如
interface MyFunctionType {(resource: string | Resource): Something}
和我的類有一些方法符合這個接口。
class MyClass {
// ...
someMethod() { /*...*/ }
someMethodThatConforms(resource: string | Resource) {
// ...
return new Something(/*...*/);
}
anotherMethodThatConforms(resource: string | Resource) {
// ...
return new Something(/*...*/);
}
someOtherMethod() { /*...*/ }
// ...
}
我知道someMethodThatConforms
和anotherMethodThatConforms
符合接口,但現在我想知道我怎麼斷言是someMethodThatConforms
和anotherMethodThatConforms
必須符合接口MyFunctionType
(這樣,如果我改變,MyFunctionType
錯誤拋出) ?
感謝你這樣做,這絕對是訣竅,但你知道如果有一種方法來做到這一點,而無需創建另一個接口('FixedMethods')? –
我們也可以定義一個通用的類接口類型,並將其與一個方法名列表一起使用,參見本答案的第二部分。 – Jokester