我有兩個介面;
interface A {
func: () => void;
}
interface B {
func: Function;
}
A和B介面有什么區別?
uj5u.com熱心網友回復:
我認為使用Functiontype 不是一個好主意,甚至 TS linter 也警告您這是危險的,因為您不提供功能方案:
不要Function用作型別。該Function型別接受任何類似函式的值。它在呼叫函式時不提供型別安全,這可能是常見的錯誤來源。它還接受諸如類宣告之類的東西,它們將在運行時拋出,因為它們不會被呼叫new。如果您希望函式接受某些引數,則應顯式定義函式形狀。
所以最好使用類似的東西
interface A {
func: (a: string) => number;
}
順便說一句,對于 void 函式,您也可以使用VoidFunctiontype 而不是() => void;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/514936.html
標籤:打字稿
