【TypeScript】TypeScript的接口和对象类型(interface):
创始人
2024-05-26 09:21:50

文章目录

        • 一、使用接口约束的时候不能多一个属性也不能少一个属
        • 二、重名interface 可以合并,继承
        • 三、可选属性 使用?操作符
        • 四、任意属性 [propName: string]
        • 五、只读属性 readonly,是不允许被赋值的只能读取
        • 六、添加函数


一、使用接口约束的时候不能多一个属性也不能少一个属

//这样写是会报错的 因为我们在person定义了a,b但是对象里面缺少b属性
//使用接口约束的时候不能多一个属性也不能少一个属性
//必须与接口保持一致
interface Person {b:string,a:string
}const person:Person  = {a:"213"
}

二、重名interface 可以合并,继承

//重名interface  可以合并
interface A{name:string}
interface A{age:number}
var x:A={name:'xx',age:20
}//继承
interface A{name:string
}interface B extends A{age:number
}let obj:B = {age:18,name:"string"
}

三、可选属性 使用?操作符

//可选属性的含义是该属性可以不存在
//所以说这样写也是没问题的
interface Person {b?:string,a:string
}const person:Person  = {a:"213"
}

四、任意属性 [propName: string]

需要注意的是,一旦定义了任意属性,那么确定属性和可选属性的类型都必须是它的类型的子集:

//在这个例子当中我们看到接口中并没有定义C但是并没有报错
//应为我们定义了[propName: string]: any;
//允许添加新的任意属性
interface Person {b?:string,a:string,[propName: string]: any;
}const person:Person  = {a:"213",c:"123"
}

五、只读属性 readonly,是不允许被赋值的只能读取

//这样写是会报错的
//应为a是只读的不允许重新赋值
interface Person {b?: string,readonly a: string,[propName: string]: any;
}const person: Person = {a: "213",c: "123"
}person.a = 123

六、添加函数

interface Person {b?: string,readonly a: string,[propName: string]: any;cb:()=>void
}const person: Person = {a: "213",c: "123",cb:()=>{console.log(123)}
}

相关内容

热门资讯

重大通报作弊器!乐乐上海麻将a... 重大通报作弊器!乐乐上海麻将ai智能透视辅助插件,乐乐上海麻将本来存在有外挂(有辅助挂方略)1、很好...
分享给玩家透视挂!家乡大贰ai... 分享给玩家透视挂!家乡大贰ai智能透视辅助工具,家乡大贰其实真的有外挂(有辅助挂细节)家乡大贰破解侠...
科普攻略开挂!英豪娱乐城ai智... 科普攻略开挂!英豪娱乐城ai智能透视辅助教程,英豪娱乐城好像真的是有外挂(有辅助挂头条)1、英豪娱乐...
总算了解辅助器!和悦游戏ai智... 总算了解辅助器!和悦游戏ai智能透视辅助教程,和悦游戏确实是真的有外挂(竟然有辅助挂)暗藏猫腻,小编...
揭秘关于辅助器!九九麻将ai智... 揭秘关于辅助器!九九麻将ai智能透视辅助技巧,九九麻将一贯是有外挂(有辅助挂方略)1、用户打开应用后...