TypeScript泛型介面

2021-09-26 04:34:46 字數 664 閱讀 5126

以使用介面的方式來定義乙個函式需要符合的形狀:

inte***ce searchfunc 

let mysearch: searchfunc = (source: string, substring: string) =>

當然也可以使用含有泛型的介面來定義函式的形狀:

inte***ce createarrayfunc 

let createarray: createarrayfunc = (length: number, value: t): array=>

return result;

}createarray(3, 'x'); // ['x', 'x', 'x']

進一步,我們可以把泛型引數提前到介面名上:

inte***ce createarrayfunc

let createarray: createarrayfunc;

createarray = function(length: number, value: t): array

return result;

}createarray(3, 'x'); // ['x', 'x', 'x']

注意,此時在使用泛型介面的時候,需要定義泛型的型別。

TypeScript已有泛型,介面,型別功能

1 omit 型別讓我們可以從另乙個物件型別中剔除某些屬性,並建立乙個新的物件型別 泛型型別宣告 type omit pick type user type userwithoutemail omit email 等價於 type userwithoutemail 2 pick 幫助型別是乙個對映型...

TypeScript泛型約束

有了泛型之後,乙個函式或容器類能處理的型別一下子擴到了無限大,似乎有點失控的感覺。所以這裡又產生了乙個約束的概念。我們可以宣告對型別引數進行約束。我們還拿上文中的student栗子來說,想訪問value的length屬性,但是編譯器並不能證明每種型別都有length屬性,所以就報錯了。student...

TypeScript泛型學習

最近在跟著黃軼老師學習vue3.0框架的原始碼,遇到了難啃的點就是typescript的泛型反向推論。所以停下腳步找找資料加強學習typescript的泛型模組。首先簡單建立第乙個使用泛型的例子 test函式,這個函式會返回任何傳入它的值。不用泛型的情況function test arg numbe...