布尔值(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 numberList: number[] = [1, 2, 3]; 

字符串类型数组

let stringList: 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;

风起缘灭
1 声望0 粉丝

下一篇 »
变量声明