1.基础类型(注意:TypeScript 和 JavaScript 没有整数类型)
1.1 任意类型 any
let x: any = 1;
let arrayList: any[] = [1, false, 'fine'];
1.2 数字类型 number
let binaryLiteral: number = 0b1010; // 二进制
let octalLiteral: number = 0o744; // 八进制
let decLiteral: number = 6; // 十进制
let hexLiteral: number = 0xf00d; // 十六进制
1.3 字符串 string
let name: string = "Runoob";
1.4 布尔类型 boolean
let flag: boolean = true;
1.5 数组类型 []
// 在元素类型后面加上[]
let arr: number[] = [1, 2];
// 或者使用数组泛型
let arr: Array<number> = [1, 2];
1.6 元组 []
let x: [string, number];
x = ['Runoob', 1];
1.7 枚举 enum 用于定义数值集合
enum Color {Red, Green, Blue};
let c: Color = Color.Blue;
console.log(c); // 输出 2
1.8 void 用于标识方法返回值的类型,表示该方法没有返回值
function hello(): void {
alert("Hello Runoob");
}
1.9 null 表示对象值缺失
表示一个空对象引用,用 typeof 检测 null 返回是 object。
1.10 undefined 用于初始化变量为一个未定义的值
typeof 一个没有值的变量会返回 undefined。
// 启用 --strictNullChecks
let x: number | null | undefined;
x = 1; // 编译正确
x = undefined; // 编译正确
x = null; // 编译正确
1.11 never never 是其它类型(包括 null 和 undefined)的子类型,代表从不会出现的值
let x: never;
let y: number;
// 编译错误,数字类型不能转为 never 类型
x = 123;
// 运行正确,never 类型可以赋值给 never类型
x = (()=>{ throw new Error('exception')})();
// 运行正确,never 类型可以赋值给 数字类型
y = (()=>{ throw new Error('exception')})();
// 返回值为 never 的函数可以是抛出异常的情况
function error(message: string): never {
throw new Error(message);
}
// 返回值为 never 的函数可以是无法被执行到的终止点的情况
function loop(): never {
while (true) {}
}
2.变量声明
注意:变量不要使用 name 否则会与 DOM 中的全局 window 对象下的 name 属性出现了重名
2.1 类型断言 允许变量从一种类型更改为另一种类型
<类型>值
//or
值 as 类型
var str = '1'
var str2:number = <number> <any> str //str、str2 是 string 类型
console.log(str2)