布尔值
let isBegin: boolean = false;
数值
let count: number = 888;
字符串
let name: string = 'ts';
let name1: string = "ts1";
let name2: string = `ts2`;
数组
let arr: number[] = [1,2,3];
let arr1: Array<number> = [1,2,3];//数组泛型
let arr2: (number|string)[] = [1,'2']
元组Tuple
元组类型允许一个已知元素数量和类型的数组,各个元素的类型不必相同。
let tp: [number,string] = [1,'ts'];
枚举enum
enum Color { Red, Green, Bule }
let e: Color = Color.Bule;
// e => 2
enum Color1 { R = 1, G = 2, B = 4 }
let e1: string = Color1[4];
// e1 => B
enum Color2 { R1 = 1, G1, B1 }
let e2: string = Color2[2]
// e2 => G1
Any
let ts:any = 1;
ts = false;
ts = 'ts';
...
Void
function Fn():void{
console.log('info');
}
null & undefined
let n:null = null;
let u:undefined = undefined;
never
//返回never的函数必须存在无法到达的终点
function nv(msg: string): never {
throw new Error(msg);
}
function nv1(msg: string): never {
while (true) {
}
}
Object
//对象类型
const p: {
name: string,
age: number
} = {
name: '张三',
age: 18
}
// 数组类型
const p1: string[] = ['张三', '李四', '王五']
// 类类型
class Person { }
const p2: Person = new Person();
// 函数类型
const p3: () => string = () => {
return 'string类型'
}
类型注解、类型推断和类型断言
let num: number;
num = 1;
//这种明确变量的类型:类型注解
let str = '张三';
//这种没有进行类型注解,但是ts自动能能推断出其类型:类型推断
//类型断言:<> & as
let someValue: any = 'string'
let num1: number = (<string>someValue).length
let num2: number = (someValue as string).length