泛型,可以支援不固定的型別,具體型別呼叫方法時決定
//傳入什麼型別,返回什麼型別
//對引數校驗
function
get<
t>
(value:t)
:tconsole.
log(
get(123))
//123
通過規定類泛型,增加類的可接收型別,避免宣告多餘的功能類似的類,提公升**復用
class
minclass
<
t>
//獲取最小值
min():
t}return min
}}let m =
newminclass
()//規定t為number
m.add(2
,3,4
,9)console.
log(m.
min())
//2let m2 =
newminclass
()//規定t為string
m2.add
('a'
,'b'
,'c'
,'d'
)console.
log(m2.
min())
//a
//1.
inte***ce
config
var setdata:
config
=function
<
t>
(value1:t)
:t;console.
log(setdata
("小李"))
//小李
//2.
inte***ce
config
<
t>
var setdata:config=
function
(value1)
;console.
log(
setdata(1
))//只能傳入number型別
將類作為引數傳入,進行方法的資料校驗
class
user
}class
mysql
<
t>
}//兩種傳入資料定義
//1.例項化
let u =
newuser
("張三"
,"133"
)//2.手動構造,可知屬性是可多不可少
let u1=
let m =
newmysql
()//指定傳入型別
m.add
(u1)
m.add
(u)
//使用介面規定固有方法
inte***ce
db<
t>
//定義操作類
class
mysql
<
t>
implements
db<
t>`)
return
true
}update
(info:
t, id: number)
:void
更新資料為$`
)}delete
(id: number)
: boolean
的資料`
)return
true
}select
(id: number):t
的資料`
)return
}}class
user
}let u=
let m =
newmysql
()//傳入user類做資料型別校驗
m.add
(u)//增加了資料[object object]
m.delete(20
)//刪除了id為20的資料
m.select(10
)//查詢了id為10的資料
m.update
(u,2
)//id為2更新資料為[object object]
泛型的存在,可以減少類、介面的重複宣告,提高**復用性 TypeScript學習筆記(五) 泛型
本篇將介紹在typescript如何使用泛型。在typescript裡,宣告泛型方法有以下兩種方式 1 function generics func1 arg t t 4 或者5 let generics func2 arg t t function arg 呼叫方式也有兩種 1 generics ...
TypeScript泛型學習
最近在跟著黃軼老師學習vue3.0框架的原始碼,遇到了難啃的點就是typescript的泛型反向推論。所以停下腳步找找資料加強學習typescript的泛型模組。首先簡單建立第乙個使用泛型的例子 test函式,這個函式會返回任何傳入它的值。不用泛型的情況function test arg numbe...
typescript學習(7) 泛型
1 型別引數 實現經典的資料結構binarysearchtree class nodenode表示這個類可以接收單個引數t,這個引數在類中的某個地方會使用到。使用方法 let numbernode new node let stringnode new node numbernode.right n...