直觀詳細的typescript隱式類型轉(zhuǎn)換圖文詳解
正文

1、unknown是所有類型的父類型,其他類型都可以賦值給 unknown
let a: undefined = undefined; let b: null = null; let x2: unknown; x2 = a; //正確 x2 = b; //正確
2、never 是任何類型的子類型,可以賦給任何類型
let a: undefined = undefined;
let b: null = null;
function err(): never { // OK
throw new Error('error');
}
a = err(); //正確
b = err(); //正確3、any可以賦值給任何類型,任何類型可以賦值給any,除了any不能賦值給never(但是never卻可以賦值給any)
let a: undefined = undefined; let b: null = null; let err: never; let y: any = 4; a = y; //正確 b = y; //正確 y = a; //正確 y = b; //正確 err = y ; //報錯 不能將類型“any”分配給類型“never”。ts(2322)
4、子類型可以賦值給父類型。但是父類型不能賦值給子類型,必須加斷言
let v: void; let a: undefined = undefined; v = a; //正確 a = v; //錯誤 不能將類型“void”分配給類型“undefined”。ts(2322) a = v as undefined; //正確
那么通常情況下,如果一個方法或組件的屬性,定義什么類型,我們傳入什么類型就完事了,為什么還要整理這張圖呢?
因為我們有時,并不能非常精確的定義一個類型,我們只想把一個子類型傳進入,這樣它也能識別。
比如vue中:
<xx-upload :before-load="handleBeforeLoad">
//setup ts代碼
let handleBeforeLoad = ()=>{
}這樣傳入會報錯,因為你會發(fā)現(xiàn)before-load傳入的類型是個由命名空間定義的自定義類型。
要么你精確的傳入匹配的類型
import type { UploaderBeforeRead } from "xx/lib/upload/types"
let beforeRead:UploaderBeforeRead = (file:File | File[]):boolean=>{
}要么傳入一個any,接收一個any參數(shù),因為第三條中"any可以賦值給任何類型,任何類型可以賦值給any"就可以解決。
let beforeRead:any = (file:any):boolean=>{
}以上就是直觀詳細的typescript隱式類型轉(zhuǎn)換圖文詳解的詳細內(nèi)容,更多關(guān)于typescript隱式類型轉(zhuǎn)換的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
javascript中的箭頭函數(shù)基礎(chǔ)語法及使用場景示例
這篇文章主要為大家介紹了?javascript中的箭頭函數(shù)基礎(chǔ)語法及使用場景示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07
JS實現(xiàn)刷新網(wǎng)頁后之前瀏覽位置保持不變示例詳解
這篇文章主要為大家介紹了JS實現(xiàn)刷新網(wǎng)頁后之前瀏覽位置保持不變示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08
axios進度條onDownloadProgress函數(shù)total參數(shù)undefined解決分析
這篇文章主要介紹了axios進度條onDownloadProgress函數(shù)total參數(shù)undefined解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07
前端可視化搭建定義聯(lián)動協(xié)議實現(xiàn)
這篇文章主要為大家介紹了前端可視化搭建定義聯(lián)動協(xié)議實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05
JS前端二維數(shù)組生成樹形結(jié)構(gòu)示例詳解
這篇文章主要為大家介紹了JS前端二維數(shù)組生成樹形結(jié)構(gòu)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09

