布尔值(Boolean)

最根本的数据类型就是布尔值 true/false

let isDone: boolean = true;

字符串(String)

let myString: string = "字符串";

数字(Number)

和javascript一样,typescript中的所有数字都是浮点数。这些浮点数的类型是number,除了反对十进制和十六进制意外,typescript还是引入了ECMAScript 2015中引入的二进制和八进制字面量。

let decLiteral: number = 6;let hexLiteral: number = 0xf00d;let binaryLiteral: number = 0b1010;let octalLiteral: number = 0o744;

数组(Array)

数字类型数组

let numList: Array<number> = [1, 2, 3]; 

字符串类型数组

let stringArr: string[] = ['1', '2', '3'];

数字类型的泛型数组

let numList: Array<number> = [1, 2, 3]; 

元组(Tuple)

元组类型容许示意一个已知元素数量和类型的数组,各元素的类型阔以不雷同

let x: [string, number, string];x = ["张三", 10, "岁"];

枚举(enum)

enum类型是对javascript类型的补充,阔认为一组数赋予敌对的名字,默认从0开始编号。

enum Color {Red,Green,Blue};

能够手动指定成员的数值,从1开始比编号

enum Color { Red = 1, Green, Blue }; let c: Color = Color.Green;

也能够全副手动赋值

enum Color { Red = 1, Green = 2, Blue = 3 };let c: Color = Color.Blue;

当咱们只晓得enum中的值是,能够通过值来获取它的名字。例如,咱们晓得值为3,然而不确定他映射的是Color的哪个名字,咱们能够查找到相应的名字:

enum Color { Red = 1, Green, Blue };let colorName: string = Color[2];console.log(colorName); // 显示"Green",因为定义的Color中2为"Green" 

Any

any指定变量能够为任意类型,当变量类型不确定时能够将其指定为Any类型,让其通过编译阶段的查看。

let notSure: any = 4;notSure = "不确定类型";notSure = [1, 2, 3];notSure = false;

当只晓得局部数据的类型时,也能够指定为Any类型,比方一个数组,他蕴含了不同类型的数据。

let notSureArr: any[] = [1, true, "free"];notSureArr[1] = 100;

Void

示意没有任何类型,申明一个void类型个别没啥用,因为只能给他赋值undefined和null

function warUser(): void {    console.log("This is my warning message");}

当函数没有返回值是,通常状况下其返回值是void

let unusable: volid = undefined;

Null和Undefined

null和undefined两者的类型别离是null和undefined,默认状况下它们是所有类型的子类,因而,能够把null和undefined赋值给Number等类型的变量。
当指定 --strictNullChecks标记后,null和undefined只能赋值给void和它们本人。如果你向传入null、undefined和其余类型时,能够应用联结类型,比方 string | number | null | undefined

Object

Object示意非原始类型类型,也就是除number,string,boolean,symbol,null或undefined之外的类型。

类型断言

类型断言通常应用在你分明的晓得一个实体具备比他现有类型更确切的类型时。
类型断言好比其余语言里的类型转换,然而不进行非凡的类型检查和解构,他没有运行时的影响,旨在编译阶段起作用。
他有等价的两种形式,别离为<>语法和as语法,然而在TS中应用JSX时,只有as语法断言时被容许。
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;