typescript學習(7) 泛型

2021-08-15 15:42:58 字數 972 閱讀 4167

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 ...