接口里的属性不全都是必需的。 有些是只在某些条件下存在,或者根本不存在。 可选属性在应用“option bags”模式时很常用,即给函数传入的参数对象中只有部分属性赋值了。

    1. interface Person {
    2. gender: string,
    3. age?: number
    4. }
    5. let jack: Person = {
    6. gender: 'Male'
    7. // 可以不赋值 age 属性,因为是可选的
    8. }