boolean

  1. let isDone: boolean = false;

number

  1. let a: number = 20; // 十进制
  2. let b: number = 0x14; // 十六进制
  3. let c: number = 0b10100; // 二进制
  4. let d: number = 0o24; // 八进制

string

  1. let name: string = 'hello ts';

数组

  1. let list: number[] = [1, 2, 3, 4];
  2. let list2: Array<number> = [2, 4, 6, 8];

元组

  1. let arr: [string, number] = ['必须是字符串', 888];

enum 枚举类型

  1. enum Habits {
  2. Rap,
  3. Basketbal = 100,
  4. Dance,
  5. }
  6. console.log({ ...Habits });

编译结果:声明一个对象 Habits,每一项添加一对属性 key-value value:key

  1. var Habits;
  2. (function (Habits) {
  3. Habits[(Habits['Rap'] = 0)] = 'Rap';
  4. Habits[(Habits['Basketbal'] = 100)] = 'Basketbal';
  5. Habits[(Habits['Dance'] = 101)] = 'Dance';
  6. })(Habits || (Habits = {}));
  7. console.log(__assign({}, Habits));

打印结果:

{ '0': 'Rap', '100': 'Basketbal', '101': 'Dance', Rap: 0, Basketbal: 100, Dance: 101 }

any

数据类型未知,可赋值为任何类型数据(慎用),如果用了就没有类型推断了。

  1. let unknowVal: any;
  2. unknowVal = 10;
  3. unknowVal = false;
  4. unknowVal = 'any';
  5. let arr2: any[] = [1, false, 'any'];

void

一般用于函数没有返回值

  1. // 函数没有返回值时
  2. function getVoid(): void {
  3. // xxx
  4. }
  5. // 如果单独声明一个void变量没有什么实际意义,只能赋值为undefined 或null
  6. //(这两种类型是所有类型的子类型)
  7. let voidVar: void;
  8. // 配置文件tsconfig.ts启动空值检查,会报:不能将类型“null”分配给类型“void”
  9. // voidVar = null
  10. voidVar = undefined;
  11. // 启动空值检查 --stringNullChecks
  12. let num = 1;
  13. // 配置文件tsconfig.ts启动空值检查,会报:不能将类型“null”分配给类型“number”
  14. // num = null
  15. // 如果需要null类型,可以使用联合类型
  16. let num2: number | null = null;

never

  1. 使用情况:函数没有返回值、抛错、死循环
  2. 任何类型的字类型
  1. //抛错
  2. function throwAError(): never {
  3. throw new Error();
  4. }
  5. // 推断的返回值类型为never
  6. function fail() {
  7. return throwAError('Something failed');
  8. }
  9. // 死循环
  10. function infiniteFn(): never {
  11. while (true) {
  12. console.log('never stop!');
  13. }
  14. }

object

  1. function createObj(obj: object | null) {
  2. return obj;
  3. }
  4. // 函数也是object
  5. createObj(infiniteFn);

类型转换

  1. let anyValue: any = 'this is a string';
  2. // 方式一
  3. let len: number = (<string>anyValue).length;
  4. // 方式二(推荐)
  5. let len2: number = (anyValue as string).length;