TypeScript函數(shù)和類型斷言實例詳解
開始
現(xiàn)在要加速學習了,大佬們有沒有內推,給個推薦
會vue2/vue3 + ts
斷言
非空斷言
非空斷言就是確定這個變量不是null或者undefined,就是把null或者undefined從他的類型中排除
function demo(message:string|undefined|null) {
const str: string = message
}
demo(undefined)此時我們沒有用非空斷言,message的值是undefined和null,所以不能賦值給str,此事運行會報錯(Type 'string | null | undefined' is not assignable to type 'string'.Type 'undefined' is not assignable to type 'string'.)
如果用上非空斷言
let message:string
function demo(message:string|undefined|null) {
const str: string = message!
}
demo(undefined)
此時代碼沒有問題
類型斷言
確定此時的變量類型
尖括號
我們可以用尖括號
let message: any = "scc" let mesLength:number = (<string>message).length

as
as用來判斷變量是不是后面的類型
let message: any = "scc" let mesLength:number = (message as string).length
確定賦值斷言
這個變量一定會被賦值,就可以使用確定賦值斷言
let message!:string
變量名后面添加一個!就可以
類型守衛(wèi)
ts類型守衛(wèi)就是起到一個縮小類型范圍作用
trpeof
typeof關鍵字可以使用===判斷此時的類型是什么
function demo(message: string | number | boolean) {
if (typeof message === "string") {
message.toUpperCase()
}
}此時message的類型被縮小成string類型,所以能調用toUpperCase方法
道理很簡單,相信有一定基礎的同學很快就會明白
in
in用來判斷變量是否在類型范圍內
interface Person {
name: string
age:number
}
interface Dog {
name: string
walk:string
}
type x = Dog|Person
function all(emp: x) {
if ("walk" in emp) {
console.log(d.walk);
}
}函數(shù)
可選參數(shù)
參數(shù)可以設成可選參數(shù),可選參數(shù)最好在必填參數(shù)和有默認值的參數(shù)后面
function demo(num:number,str?:string){
}默認值參數(shù)
function demo(num:number,bol:boolean = true,str?:string){
}bol就是有默認值的參數(shù),如果傳值,那么值為傳來的值,不傳就是默認值
函數(shù)重載
函數(shù)重載可以讓函數(shù)根據(jù)傳值得類型,自動選擇應該執(zhí)行的函數(shù)
function add(a1: number, a2: number):number
function add(a1: string, a2: string):string
function add(a1: any, a2: any):any {
return a1 + a2
}
console.log(add(20,30));
console.log(add("scc","brd"));
當我們傳入不同的值時,會返回調用不同的函數(shù)
結束
到此這篇關于TypeScript函數(shù)和類型斷言的文章就介紹到這了,更多相關TS函數(shù)和類型斷言內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
jquery SweetAlert插件實現(xiàn)響應式提示框
為了滿足用戶體驗度,使用SweetAlert插件實現(xiàn)響應式提示框效果非常好,下面通過這篇文章給大家介紹jquery SweetAlert插件實現(xiàn)響應式提示框,需要的朋友可以參考下2015-08-08
JavaScript之Canvas_動力節(jié)點Java學院整理
這篇文章主要介紹了JavaScript之Canvas,Canvas是HTML5新增的組件,它就像一塊幕布,可以用JavaScript在上面繪制各種圖表、動畫等2017-07-07
JavaScript中eval和with語句如何影響作用域鏈的深度探索
這篇文章主要為大家介紹了JavaScript中eval和with語句如何影響作用域鏈的深度探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05
刪除javascript所創(chuàng)建子節(jié)點的方法
這篇文章主要介紹了刪除javascript所創(chuàng)建子節(jié)點的方法,涉及javascript針對頁面節(jié)點元素的操作技巧,需要的朋友可以參考下2015-05-05
JS中showModalDialog關閉子窗口刷新主窗口用法詳解
這篇文章主要介紹了JS中showModalDialog關閉子窗口刷新主窗口用法,結合具體實例形式較為詳細的分析了showModalDialog常見用法與相關使用技巧,需要的朋友可以參考下2017-03-03

