TypeScript接口上的可选参数

oxcyiej7  于 2022-11-26  发布在  TypeScript
关注(0)|答案(1)|浏览(183)

作为explained here?操作符可用于将函数参数标记为可选。?操作符在接口参数上的含义是什么?例如,如果我们有以下TypeScript接口:

export interface Person {
    phone?: number;
    name?: string;
}

和实作界面的类别:

class Customer implements Person {
}

Customer现在是否正确实现了Person,因为Person接口上的所有属性都是可选的?

zqdjd7g9

zqdjd7g91#

简短的回答是yes。Customer正确地实现了Person,因为接口的所有字段都是可选的。任何对象都将正确地实现该接口。
这个接口的用处是:

  • 在实现者站点上,如果声明了任何可选字段,则类型必须对应(因此phone必须定义为number
  • 在接收端(例如,作为函数参数),您只能访问可能是Person的一部分的字段(您应该检查它们是否为undefined),但例如,该函数保证它不会访问Person参数的任何其他字段。

相关问题