typescript - 2

補充

# undefined和null都是其他數據類型的子集
let str:string = "ddd";
str = undefined // 不會報錯

# 如果不指定類型,那默認是any,後續的任何類型的賦值操作都允許而不會類型檢查
let b;
b = 1;
b = "fsss";

# 聯合數據類型注意點:其中toString是string和number都擁有的,不然不允許
let demo:string | number;
console.log(demo.toString());

# 剩餘參數, 其中剩餘參數的類型一定是any,只讀屬性一旦賦值便不能修改
interface Istate {
    age:number,
	readonly name: string,
    [arg:string]: any
}
let obj1:Istate = {
    age: 10,
    name: '你好'
}

# 數組聲明的三種表示方法
- let arr:number [] = [1, 2, 3];
- let arrType: Array<number> = [1, 2, 3];
- interface IArr {
    [index: number]:number
}
interface Istate {
    username: string,
    age: number    
}

let arrType4:IArr = []
let arrType5: Array<Istate> = [{
    username: '張三',
    age: 90
}]
let arrType6: Istate[] = [{ username: '張三', age: 90 }]

# 函數約束
- let funcType1:(name: string, age: number) => number = function (name: string, age:number):number{}
- interface funcType6 {
    (name: string, age:number):number
}
let funcType6: funcType6 = function (name: string, age:number):number{}

# 類型斷言不是類型轉換,只能斷言聯合類型裏存在的類型
發佈了38 篇原創文章 · 獲贊 4 · 訪問量 9616
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章