數(shù)據(jù)類型
布爾值
let isDone: boolean = false;
數(shù)字
let a: number = 6;
字符串
let name: string = "simon";
Null 和 Undefined
let u: undefined = undefined;
let n: null = null;
默認(rèn)情況下null和undefined是所有類型的子類型。 就是說你可以把 null和undefined賦值給number類型的變量详炬。
Object
let b:object = {name: 'simon'}
數(shù)組
TypeScript像JavaScript一樣可以操作數(shù)組元素怨咪。 有兩種方式可以定義數(shù)組泼菌。 第一種泳挥,可以在元素類型后面接上 [],表示由此類型元素組成的一個(gè)數(shù)組:
let list: number[] = [1, 2, 3];
第二種方式是使用數(shù)組泛型柬甥,Array<元素類型>:
let list: Array<number> = [1, 2, 3];
元組 Tuple
元組類型允許表示一個(gè)已知元素?cái)?shù)量和類型的數(shù)組饮六,各元素的類型不必相同其垄。
let x: [string, number];
x = ['hello', 10]; // OK
x = [10, 'hello']; // Error
枚舉
使用枚舉類型可以為一組數(shù)值賦予友好的名字
enum Color {Red, Green, Blue}
默認(rèn)情況下苛蒲,從0開始為元素編號。 你也可以手動的指定成員的數(shù)值绿满。
enum Color {Red = 1, Green = 2, Blue = 4}
Any
有時(shí)候臂外,我們會想要為那些在編程階段還不清楚類型的變量指定一個(gè)類型
let list: any[] = [1, true, "free"];
Void
當(dāng)一個(gè)函數(shù)沒有返回值時(shí),你通常會見到其返回值類型是 void:
function warnUser(): void {
console.log("This is my warning message");
}
never
never類型表示的是那些永不存在的值的類型喇颁。
// 返回never的函數(shù)必須存在無法達(dá)到的終點(diǎn)
function error(message: string): never {
throw new Error(message);
}
類型斷言
通過類型斷言這種方式可以告訴編譯器漏健,“相信我,我知道自己在干什么”橘霎。類型斷言有兩種形式蔫浆。 其一是“尖括號”語法:
let someValue: any = "this is a string";
let strLength: number = (<string>someValue).length;
另一個(gè)為as語法:
let someValue: any = "this is a string";
let strLength: number = (someValue as string).length;
變量聲明
拋棄var的聲明方式,改用let和const
解構(gòu)
數(shù)組解構(gòu)
let input = [1, 2];
let [first, second] = input;
console.log(first); // outputs 1
console.log(second); // outputs 2
對象解構(gòu)
let o = {
a: "foo",
b: 12,
c: "bar"
};
let { a, b } = o;
// a的值foo
// b的值12
展開
let first = [1, 2];
let second = [3, 4];
let bothPlus = [0, ...first, ...second, 5]; // [0, 1, 2, 3, 4, 5]
對象展開 這就意味著出現(xiàn)在展開對象后面的屬性會覆蓋前面的屬性
let defaults = { food: "spicy", price: "$$", ambiance: "noisy" };
let search = { ...defaults, food: "rich" }; // { food: "rich", price: "$$", ambiance: "noisy" }