我们的Ember组件通常使用以下模式,该模式可以在ember-typescript 2上正常工作:
export default class DatePicker extends Component {
format: string = this.format || 'dd/LL/yyyy';
}
如果格式未通过模板传递,则使用'dd / LL / yyyy'进行初始化。
使用ember-typescript 3和更新的TS版本,编译器不再高兴了。它抱怨
error TS2729: Property 'format' is used before its initialization.
因为对this.format
的使用不满意。
我该怎么做才能解决这个问题?我们的代码(到目前为止可以正常工作)是否无效并且应该更改?如果是,如何?
您不需要将this.format
作为默认值的一部分。只要做:
export default class DatePicker extends Component {
format: string = 'dd/LL/yyyy';
}
如果模板传入@format
,它将覆盖组件TS文件中的默认值。