#typescript #vue.js
Вопрос:
В настоящее время я переношу все с Vue2 на Vue3 с помощью машинописного текста и декораторов модулей. Я получаю сообщение об ошибке, когда хочу использовать эту find
функцию.
@Module
export default class TagsModule extends VuexModule {
data = {};
get AllTag() {
return (id) => {
return this.data.find(tag => tag.id === id)
};
}
}
В нем говорится:: Property 'find' does not exist on type '{}'.
Я хочу добиться следующего:
- Я хочу отправить строку
AllTag
и использовать ее для поиска междуdata
Данные выглядят так:
[
{
"id": 2,
"created_at": null,
"updated_at": null,
"created_by": 1,
"status": null,
"uid": null,
"name": "Testtaag",
"class": "light-danger"
}, {
"id": 1,
"created_at": null,
"updated_at": null,
"created_by": 1,
"status": null,
"uid": null,
"name": "tihS",
"class": "light-warning"
}
]
Комментарии:
1. В вашем примере кода
data
это объект. У объектов нетfind
метода. Массивы делают, однако: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…2. Каков наилучший способ действий?
3. С помощью массива, если вы хотите использовать методы массива…
Ответ №1:
Вы определили data
как data = {};
. Это объект, поэтому метод массива find
не имеет смысла. Если вы хотите сохранить массив (как показано в вашем примере), используйте data = [];
.