打字稿界面上的可选参数?

时间:2018-02-25 18:33:30

标签: javascript angular typescript

作为explained here?运算符可用于将函数参数标记为可选。 ?运算符对接口参数的意义是什么?例如,如果我们有这个打字稿界面:

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

实现接口的类:

class Customer implements Person {
} 

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

1 个答案:

答案 0 :(得分:5)

简短回答是肯定的,Customer正确实现Person,因为接口的所有字段都是可选的,任何对象都将正确实现接口。

此界面的用处是:

  • 在实施者网站上,如果声明了任何可选字段,则类型必须对应(因此phone必须定义为number
  • 在接收方(例如作为函数参数),您只能访问可能属于Person的字段(您应该检查它们是undefined),但该函数例如保证它将不访问Person参数的任何其他字段。
相关问题