1.布尔值
let isDone:boolean = false
2.数字(支持二,八,十,十六进制)
let number = 20
3.字符串
let name:string = "Bob"; 模板字符串: let sentence:string = `hello,my name is ${name}`;
4.数组
let list:number[] = [1,2,3,4];
let list:Array<number> = [1,2,3,4]
5.元祖 Tuple:已知元素数量和类型的数组,各类型可不相同
let x:[string,number];
x = ["Bob",18]
6.枚举Enum
enum Color {Red,Blue,Green}; //默认从0开始 enum Color {Red=1,Blue,Green}; //指定开始位置 enum Color {Red=1,Blue=3,Green=5}; //都指定位置 let c:Color = Color.Blue; //返回对应的index let colorName:string = Color[1] //返回对应的枚举项
7.Any(不清楚变量的类型但又想为其指定类型)
let notSure: any = 4; 只知道部分类型时: let list: any[] = [1, true, "free"];
8.Void(函数的返回类型,即没有任何类型)
function warnUser(): void { alert("This is my warning message"); }
9.Null和Undefined
默认情况下null和undefined是所有类型的子类型。 就是说你可以把 null和undefined赋值给任何类型的变量。
10.Never(never类型表示的是那些永不存在的值的类型)
如:never
类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型; 变量也可能是 never
类型,当它们被永不为真的类型保护所约束时。
never
类型是任何类型的子类型,也可以赋值给任何类型;然而,没有类型是never
的子类型或可以赋值给never
类型(除了never
本身之外)。 即使 any
也不可以赋值给never
。
11.类型断言
let someValue: any = "this is a string"; 1) let strLength: number = (<string>someValue).length; 2) let strLength: number = (someValue as string).length;