Используя @проп декоратор для машинописного текста - составители выдает ошибку с просьбой инициировать проп
Я использую Vue с TypeScript и пакетом vue-property-decorator
.
Когда я использую такой реквизит:
@Prop({ default: '' }) private type: string
Я получаю ошибку компилятора TS: Property 'type' has no initializer and is not definitely assigned in the constructor.
Но тогда, если я инициализирую его чем-то вроде:
@Prop({ default: '' }) private type: string = ''
Затем я получаю предупреждение в консоли браузера:
vue.runtime.esm.js?ff9b:587 [Vue warn]: Avoid mutating a prop directly since the value will be overwritten
whenever the parent component re-renders. Instead, use a data or computed property based on the prop's
value. Prop being mutated: "type"
Итак, что я должен сделать в этом сценарии, чтобы не было никаких ошибок или предупреждений?
Единственное, что я могу придумать, это установить:"strictPropertyInitialization": false
в tsconfig.джсон, но я хотел бы избежать этого, если возможный.
Спасибо!
1 ответ:
Начальное сообщение об ошибке является результатом строгой инициализации класса TypeScript (введено в 2.7). В примечаниях к выпуску 2.7 описывается использование определенного оператора присваивания (
!
) для решения этой проблемы. В вашем случае вы бы сделали это:@Prop({ default: '' }) private type!: string