[TOC] ## 布尔 `let demoBoolen:boolean = false;` ## 整数 `let demoInt:number=123;` ## 字符串 ``` let hello:string="hello"; let helloWord:string=`${hello} word`; ``` ## 数组 `let demoArray1:number[]=[1,2,3]; ` 使用泛型 `let demoArray2:Array<number>=[1,2,1]` 二维数组 ``` const nexData:number[][]=[ [0,0,0,0], [0,0,0,0], [0,0,0,0], [0,0,0,0], ]; ``` ## 元祖 `let demo1:[string,number]=['123',123]` ## 枚举 ``` enum demo {R,G,B} let a:string = demo[1];//G ``` 指定开始值 ``` enum demo {R=1,G,B} let a:string = demo[1];//R ``` ### 反向映射 ``` enum Enum { A } let a = Enum.A; let nameOfA = Enum[a]; // "A" ``` ### const枚举 ``` const enum Enum { A = 1, B = A * 2 } ``` ## Any ``` let a:any=123.123 a.toFixed(1); //123.1 let b:any="123"; b.slice(1) //12 ``` ## Void `function warnUser(): void { }` ## Null 和 Undefined 默认情况下null和undefined是所有类型的子类型。 就是说你可以把 null和undefined赋值给number类型的变量。 `let a:number=null;` ## Never `never`类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型 ``` // 返回never的函数必须存在无法达到的终点 function error(message: string): never { throw new Error(message); } // 推断的返回值类型为never function fail() { return error("Something failed"); } // 返回never的函数必须存在无法达到的终点 function infiniteLoop(): never { while (true) { } } ``` ## Object ``` declare function create(o: object | null): void; create({ prop: 0 }); // OK create(null); // OK create(42); // Error create("string"); // Error create(false); // Error create(undefined); // Error ``` ## 类型断言 1. 尖括号断言 ``` let someValue: any = "this is a string"; let strLength: number = (<string>someValue).length; ``` 2. `as` 断言 ``` let someValue: any = "this is a string"; let strLength: number = (someValue as string).length; ``` 当你在TypeScript里使用JSX时,只有 as语法断言是被允许的