ts中特殊符號
最全特殊符號連結:https://blog.csdn.net/qiwoo_weekly/article/details/108557466
1.字尾表示式操作符!
可以用於斷言操作物件是非 null 和非 undefined 型別:
function x (y:string | undefined | null) {
const a:string = y; // error
const b:string = y!; // ok
}
2.可選鏈?.編寫程式碼時如果遇到null
或undefined
就可以立即停止某些表示式的執行
obj?.prop
obj?.[expr]
arr?.[index]
func?.(args)
這裡我們來舉一個可選的屬性訪問的例子:
constval=a?.b;
為了更好的理解可選鏈,我們來看一下該
const val = a?.b
語句編譯生成的 ES5 程式碼:
varval=a===null||a===void0?void0:a.b;
可選鏈函式呼叫:letresult=obj.customMethod?.();
3.??.空值合併運算子:當左側運算元為 null 或 undefined 時,其返回右側的運算元,否則返回左側的運算元。
eg:
constfoo=null??'defaultstring';
console.log(foo);//輸出:"default string"
4.?:可選屬性:TypeScript 中的介面是一個非常靈活的概念,除了可用於對類的一部分行為進行抽象以外,也常用於對「物件的形狀(Shape)」進行描述。
interfacePerson{
name:string;
age?:number;
}
letlolo:Person={
name:"lolo"
}
5.&
運算子:可以將現有的多種型別疊加到一起成為一種型別,它包含了所需的所有型別的特性。
typePartialPointX={x:number;};
typePoint=PartialPointX&{y:number;};
letpoint:Point={
x:1,
y:1
}
6.|
分隔符:在 TypeScript 中聯合型別(Union Types)表示取值可以為多種型別中的一種,聯合型別使用|
分隔每個型別。聯合型別通常與null
undefined
一起使用:
constsayHello=(name:string|undefined)=>{/*...*/};