Типы значений Vuejs data() с автозаполнением в TypeScript

#typescript #vuejs3

#typescript #vuejs3

Вопрос:

Я пытаюсь заставить типы распространяться из состояния data () в остальную часть компонента, поскольку я нахожу автозаполнение почти необходимым для того, как я кодирую.

У меня есть простой снимок ниже, я возвращаю переменную ‘map’ типа L.Map (leafletjs, если кому-то интересно). Однако в функции mounted() или любой другой vscode / ts считает, что это «any» .

введите описание изображения здесь

Я огляделся, чтобы узнать, была ли у кого-нибудь такая же проблема, и решил ее, но я ничего не увидел.

Любая помощь была бы очень признательна за то, где я ее использовал!

Комментарии:

1. Рассматривали ли вы возможность использования composition API, с таким подходом проще использовать TypeScript.

2. Спасибо — «Composition API» — это в основном использование reactive ()? Я рассмотрел несколько примеров, таких как link . Я ничего не видел, как иметь локальное состояние для каждого компонента (я думаю, без создания файла резервного состояния для каждого компонента)

3. не совсем, это совершенно новая концепция создания компонентов vue с помощью Vue3: v3.vuejs.org/guide/composition-api-introduction.html

Ответ №1:

Спасибо, Томас, ты указал мне правильное направление для обхода. Я думаю, что я наполовину следовал подходу «composition api».

Вывод: короткий ответ: данные автозаполнения / типа, похоже, не проходят из внутреннего состояния в data ()

Исправление: я в основном перенес свое состояние во внешний класс, у которого есть state dict, завернутый в reactive() .

В некоторых случаях это немного неудобно, но для меня важно иметь правильную информацию о типе.