TypeScript学习之联合类型-接口

我爱海鲸 2023-01-08 20:16:20 前端

简介ts联合类型-接口

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   //年龄一旦赋予初始值之后,就不能在对其进行更改了!

你好:我的2025