接口里的属性不全都是必需的。 有些是只在某些条件下存在,或者根本不存在。 可选属性在应用“option bags”模式时很常用,即给函数传入的参数对象中只有部分属性赋值了。 interface Person { gender: string, age?: number}let jack: Person = { gender: 'Male' // 可以不赋值 age 属性,因为是可选的}