TS常用的类型
// 也可以直接使用字面量進行類型聲明
let a: 10;
a = 10;// 可以使用 | 來連接多個類型(聯(lián)合類型)
let b: "male" | "female";
b = "male";
b = "female";let c: boolean | string;
c = true;
c = 'hello';// any 表示的是任意類型,一個變量設置類型為any后相當于對該變量關閉了TS的類型檢測
// 使用TS時,不建議使用any類型
// let d: any;// 聲明變量如果不指定類型,則TS解析器會自動判斷變量的類型為any (隱式的any)
let d;
d = 10;
d = 'hello';
d = true;// unknown 表示未知類型的值
let e: unknown;
e = 10;
e = "hello";
e = true;let s:string;// d的類型是any,它可以賦值給任意變量
// s = d;e = 'hello';// unknown 實際上就是一個類型安全的any
// unknown類型的變量,不能直接賦值給其他變量
if(typeof e === "string"){s = e;
}// 類型斷言,可以用來告訴解析器變量的實際類型
/*
* 語法:
* 變量 as 類型
* <類型>變量
*
* */
s = e as string;
s = <string>e;// void 用來表示空,以函數(shù)為例,就表示沒有返回值的函數(shù)
function fn(): void{
}// never 表示永遠不會返回結果
function fn2(): never{throw new Error('報錯了!');
}
// object表示一個js對象
let a: object;
a = {};
a = function () {
};// {} 用來指定對象中可以包含哪些屬性
// 語法:{屬性名:屬性值,屬性名:屬性值}
// 在屬性名后邊加上?,表示屬性是可選的
let b: {name: string, age?: number};
b = {name: '孫悟空', age: 18};// [propName: string]: any 表示任意類型的屬性
let c: {name: string, [propName: string]: any};
c = {name: '豬八戒', age: 18, gender: '男'};/*
* 設置函數(shù)結構的類型聲明:
* 語法:(形參:類型, 形參:類型 ...) => 返回值
* */
let d: (a: number ,b: number)=>number;
// d = function (n1: string, n2: string): number{
// return 10;
// }/*
* 數(shù)組的類型聲明:
* 類型[]
* Array<類型>
* */
// string[] 表示字符串數(shù)組
let e: string[];
e = ['a', 'b', 'c'];// number[] 表示數(shù)值數(shù)值
let f: number[];let g: Array<number>;
g = [1, 2, 3];/*
* 元組,元組就是固定長度的數(shù)組
* 語法:[類型, 類型, 類型]
* */
let h: [string, number];
h = ['hello', 123];/*
* enum 枚舉
*
* */
enum Gender{Male,Female
}let i: {name: string, gender: Gender};
i = {name: '孫悟空',gender: Gender.Male // 'male'
}// console.log(i.gender === Gender.Male);
// &表示同時
let j: { name: string } & { age: number };
// j = {name: '孫悟空', age: 18};// 類型的別名
type myType = 1 | 2 | 3 | 4 | 5;
let k: myType;
let l: myType;
let m: myType;k = 2;
總結
- 上一篇: 三星 Galaxy A15 4G 手机跑
- 下一篇: TS对象中的实例属性和静态属性