typescript 学习
一、基本类型
1、对象声明
注意: 声明a对象,包含name,和 age 均为string类型,[x:string]:string 表示可能存在其他string类型的属性,需要注意的是:若还有其他类型属性时,需满足条件:
① 固定属性为统一类型
② 其他属性和需要和固定类型属性类型相同
?表示此属性可有可无,规定属性内,不能存在其他属性,如上height为未声明的属性名称
2、函数声明
let a: (a:number, b:number) => number; a = (a: number, b: number) => { return a + b; }
函数声明的格式: (参数:类型,参数:类型) => 类型
let a: (a: number, b?: number, ...args: Array<number>) => void; a = (a: number, b?: number, c?: number): void => { console.log(b?.toFixed()); };
需要注意的是:如果想使用b参数,那么只有在该参数存在的情况下才可以使用,如 b?.toFixed()
3、基本数据声明
let aa: number | string; aa = 12; aa = 'hello'; aa = []; // 报错 let cc: {name: string} & {age: number} cc = {name: 'hello', age: 12}
|符号和&符号的使用: |符号可以使用多个,声明变量可以为多种类型,&符号也可以使用多个,标示属性的合并,如上
4、数组的声明
let aa: string[] | number[];
let bb: Array<string> | Array<number>;
声明方式有两种
5、枚举
enum Sex { mail, femail, } function pan(sex: Sex): Sex { if (sex === Sex.mail) { return Sex.mail; } else { return Sex.femail; } }
枚举可以做为一种类型,声明到属性名中
6、类型别名
type aa = { name: string; age: number; } let bb: aa; bb = { name: 'helo', age: 12 }
定义类型别名,可以使用别名代表后面的一大推代码