1、TypeScript 联合类型
联合类型表示取值可以为多种类型中的一种
如果定义的时候没有赋值,不管之后有没有赋值,都会被推断成any类型而完全不被类型检查
只能访问此联合类型内的所有类型里共有的属性或者方法
2、TypeScript 中对象类型-接口
可描述类的一部分抽象行为,也可描述对象的结构形状
接口一般首字母大写 有的编程语言上面建议接口的名称加上I前缀
赋值的时候,变量的形状必须要跟接口的形状保持一致
接口中可定义可选属性、只读属性、任意属性
3、测试
联合类型:
//联合类型
var muchtype:string|number = "hello"
muchtype = 10
console.log(muchtype.toString())
接口:
//定义接口 强约束
interface Istate {
name:string,
age:number
}
var obj1:Istate;
obj1 = {name:"张三",age:10}
//可选属性
interface Istate2 {
name: string,
age?: number //存疑 可有可无
}
var obj2:Istate2;
obj2 = {name:"张三",age:20}
obj2 = {name:"李四"}
//属性个数不确定的时候 any必须是任意类型
interface Istate3 {
name:string|number,
age?:number,
[propName:string]:any
}
var obj3:Istate3 = {name:1,age:10,sex:"男",isMarry:true}
//只读属性
interface Istate4 {
name:string,
readonly age:number
}
var obj4:Istate4 = {name:"张三",age:10}
obj4.name = "李四"
// obj4.age = 20 //年龄一旦赋予初始值之后,就不能在对其进行更改了!