1、型別引數
實現經典的資料結構binarysearchtree:
class node
node表示這個類可以接收單個引數t,這個引數在類中的某個地方會使用到。使用方法:
let numbernode = new node();
let stringnode = new node();
numbernode.right = new node();
numbernode.value = 42;
//type "string" is not assignable to type "number"
numbernode.value = "42";
//type nodeis not assignable to type nodenumbernode.left = stringnode;
上述**中我們建立了3個節點:numbernode、stringnode,以及另乙個型別為node的節點,然後把這個節點例項賦給numbernode的右孩子。由於numbernode的型別是node,所以我們可以把它的值賦成42,但是不能是"42",左孩子同理。
在定義中我們明確宣告了左右孩子的節點型別都是node,因此會得到第二個編譯錯誤。
2、泛型函式
泛型的另乙個典型用法就是用來定義一種可以操作一組型別的函式。如定義乙個identity函式,它可以接受乙個引數t,並且會返回它:
function identity(arg: t)
3、多重泛型
ts允許使用多重泛型:
class pair
用以下方式建立例項:
let pair = new pair();
pair.key = "foo";
pair.value = 42;
TypeScript泛型學習
最近在跟著黃軼老師學習vue3.0框架的原始碼,遇到了難啃的點就是typescript的泛型反向推論。所以停下腳步找找資料加強學習typescript的泛型模組。首先簡單建立第乙個使用泛型的例子 test函式,這個函式會返回任何傳入它的值。不用泛型的情況function test arg numbe...
TypeScript學習(五)泛型
泛型,可以支援不固定的型別,具體型別呼叫方法時決定 傳入什麼型別,返回什麼型別 對引數校驗 function get t value t tconsole.log get 123 123通過規定類泛型,增加類的可接收型別,避免宣告多餘的功能類似的類,提公升 復用 class minclass t 獲...
TypeScript學習筆記(五) 泛型
本篇將介紹在typescript如何使用泛型。在typescript裡,宣告泛型方法有以下兩種方式 1 function generics func1 arg t t 4 或者5 let generics func2 arg t t function arg 呼叫方式也有兩種 1 generics ...