布尔值 (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;