在面向对象语言中,接口(Interfaces)是一个很重要的概念,它是对行为的抽象,而具体如何行动需要由类(classes)去实现(implements)。
ypeScript 中的接口是一个非常灵活的概念,除了可用于对类的一部分行为进行抽象以外,也常用于对「对象的形状(Shape)」进行描述。
一个简单的例子:
//定义接口
interface Person{
name: string,
age: number, // 必选属性
job?: string, //可选属性,表示不是必须的参数,
readonly salary: id, //表示是只读的属性,但是在初始化之后不能重新赋值,否则会报错
[ propName : string ] : any, // 任意类型
}
//定义一个变量,它的类型时接口Person,这样就约束了接口的内容
let person: Person = {
name: 'jack',
age: 28,
job: 'IT dog',
id: 9872,
salary: 9999,
}
function printMan(person) {
console.log( `我是 ${person.name}, 我今年 ${person.age},我的工作是${person.job}`);
}
1. 必选属性 => ":" 带冒号的属性是必须存在的,不可以多也不能少
2. 可选属性 => " ? " 表示有选择的选项,可有可无
3. 只读属性 => " readonly " 对象的字段只在创建的时候赋值,注意哦,注意,只读的约束存在于第一次给对象赋值的时候,而不是第一次给只读属性赋值的时候:
4. 任意属性 [ propName : 类型 ] : any 表示定义了任意属性取string 类型的值
需要注意的是,一旦定义了任意类型,那么确定属性和可选属性都必须是它的子属性
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步