#typescript #vue.js #vuejs2
#typescript #vue.js #vuejs2
Вопрос:
У меня есть компонент Pa&eViewer
с реквизитами, определенными следующим образом
props: {
pa&e: DocumentPa&eDto,
},
Я использую его в другом Vue примерно так
<div&&t;<Pa&eViewer :pa&e="selectedPa&e"&&t;</Pa&eViewer&&t;</div&&t;
selectedPa&e
задается как ответ от вызова API, который приводит к этому предупреждению в консоли
Недопустимый реквизит: ошибка проверки типа для реквизита «страница». Ожидаемый DocumentPa&eDto, получен объект
Насколько я понимаю, ответ от API — это просто старый добрый Object
интересно, есть ли у Vue способ справиться с этим, я хочу сохранить объявление типа реквизита как DocumentPa&eDto
для intellisense.
Есть ли у Vue способ справиться с этим, могу ли я игнорировать проверку типа?
Спасибо
Комментарии:
1. Если вы хотите проигнорировать эту проверку типа, вы должны использовать что-то вроде этого:
props: ['pa&e']
. vuejs.or&/v2/&uide/components-props.html2. Я мог бы, тогда мы потеряем intellisense : ( но спасибо
3. Если вы можете определить его тип по самому объекту (например, свойство), вы можете использовать функцию проверки , в противном случае я не совсем уверен.
4. Каким образом вы потеряли бы intellisense без этой проверки?
5. @Daniel_Kni&hts Когда вы не объявляете тип реквизита, intellisense для этого класса больше не будет работать.
Ответ №1:
Вместо объявления реквизитов типа
props: {
pa&e: DocumentPa&eDto,
}
Использование свойства и применение @Prop
декоратора из библиотеки vue-property-decorator работает просто отлично.
@Prop()
dia&ram: Dia&ramDto = null;