基本类型变量
let isDone: boolean = true;
let x: number = 10;
const myName: string = 'li';
let val: any = 10;
val = true;
let val1: Object = 10;
val = true;
// Object类型类似any,可以随意传值,但不能随意调用
let obj1: object = {};
let u: undefined = undefined;
let n: null = null;
联合类型
let x: number | null = null;
数组
let list: any[] = [1, true, 3];
let list2: Array<number> = [1, 2, 3];
let list3: ReadonlyArray<string> = ['1', '2'];
元组 tuple
let tuple1: [string, number] = ['age', 20];
tuple1[0].length;
tuple1[1].toFixed(2);
类型断言(相当于类型转换)
let a: any = 10;
let b: number = (a as string).length;
枚举
枚举类型提供一个便利是可以由枚举的值得到它的名字
enum Color {
red = 10,
green = 100
}
let val1: string = Color[10];
let val2: Color = Color.red;
函数
函数参数
给函数参数添加类型注解
function test(name: string) { }
默认值
function test(name: string, age: number = 23) {
}
函数返回值
function test(): void {
// void类型,与any类型相反,它表示没有任何类型, 通常作用于函数返回值,
}
function test1(): never {
throw new Error();
// 返回never类型必须存在无法到达的终点
}
接口
interface Person {
name: string;
age: number;
tel?: string;
readonly id: string;
[propName: string]: any;
}
const person: Person = {
name: 'li',
age: 23,
tel: '180',
id: '1',
gender: 'male',
}
function print(person: Person): Person {
return person;
}
类
构造器中public参数为类的属性
class Student {
constructor(public name: string, public age: number) {
}
print() {
console.log(this.name);
}
}