TS 類型兼容教程示例詳解
類型兼容
因?yàn)镴S語(yǔ)言不慎過(guò)于領(lǐng)過(guò), 真實(shí)開發(fā)場(chǎng)景中往往無(wú)法做到嚴(yán)格一致的類型約束,此時(shí)TS就不得不做類型兼容
- 頂類型:unknown -- 任何類型都可以賦值給unknown
- 底類型:never -- never兼容任何類型(可以賦值給任何類型)
- any: 其實(shí)不是一個(gè)類型,它是一個(gè)錯(cuò)誤關(guān)閉器,用了any就等同于放棄了類型約束


簡(jiǎn)單類型兼容
子集可以賦值給父級(jí)
type name = string | number
string 和 number 都是 類型name 的子集
普通對(duì)象兼容
屬性多的可以賦值給屬性少的,前提是有共同屬性
- 屬性越多,限制越多,表示的集合越小(符合條件的對(duì)象越少)
- 屬性越少,限制越少,表示的集合越大
type Person = {
name: string
age: number
}
let user = {
name: 'liu',
age: 20,
email: ''
}
let p: Person = user
函數(shù)兼容
參數(shù)數(shù)量不一致
數(shù)量少的兼容數(shù)量多的,前提為類型一致

只要參數(shù)部分能夠找到對(duì)應(yīng)的位置就用**==綠色箭頭==,否則為==紅色箭頭==**,當(dāng)參數(shù)全為綠色箭頭時(shí),最左側(cè)的箭頭就為綠色,代表函數(shù)可以兼容
參數(shù)類型不一致
參數(shù)部分: 子類可以兼容父類,則函數(shù)整體不能兼容,
MyMouseEvent 是 MyEvent 的子類,所以mouseListener 不兼容 listener
==對(duì)參數(shù)要求多的函數(shù)不能賦值給對(duì)參數(shù)要求少的函數(shù)==
MyEvent 是 MyMouseEvent 的父類,所以listener 兼容 mouseListener

返回不同
返回值屬性多集合小 可以 兼容 返回值屬性少集合大

以上就是TS 類型兼容教程示例詳解的詳細(xì)內(nèi)容,更多關(guān)于TS 類型兼容的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
JavaScript前端學(xué)算法題解LeetCode最大重復(fù)子字符串
這篇文章主要為大家介紹了JavaScript前端學(xué)算法題解LeetCode最大重復(fù)子字符串,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
JavaScript parseInt0.0000005打印5原理解析
這篇文章主要為大家介紹了JavaScript parseInt0.0000005打印5原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07
微信小程序 this和that詳解及簡(jiǎn)單實(shí)例
這篇文章主要介紹了微信小程序 this和that詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-02-02
微信小程序上滑加載下拉刷新(onscrollLower)分批加載數(shù)據(jù)(二)
這篇文章主要介紹了微信小程序上滑加載下拉刷新(onscrollLower)分批加載數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2017-05-05
讓chatgpt將html中的圖片轉(zhuǎn)為base64方法示例
這篇文章主要為大家介紹了讓chatgpt將html中的圖片轉(zhuǎn)為base64方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
JS前端架構(gòu)pnpm構(gòu)建Monorepo方式管理demo
這篇文章主要為大家介紹了JS前端架構(gòu)pnpm構(gòu)建Monorepo方式的管理demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07

