Я искал по всему Интернету минимальный рабочий пример установки Vue.js + TypeScript. Как обычно, "современный стек JavaScript", большинство из этих руководств либо устарели, несмотря на то, что они написаны всего пару месяцев назад или в зависимости от конкретной настройки. Похоже, что не существует общего, проверяемого примера.
Вот некоторые из рассмотренных мной ресурсов:
- https://vuejs.org/v2/guide/typescript.html
- https://herringtondarkholme.github.io/2016/10/03/vue2-ts2/
- http://www.mindissoftware.com/Vue-Sample-in-Typescript/
- https://medium.com/@hayavuk/setting-vue-up-for-typescript-goodness-a6ddc4072f4f
- https://johnpapa.net/vue-typescript/
- https://alexjoverm.github.io/2017/06/28/Integrate-TypeScript-in-your-Vue-project/
Основным используемым шаблоном является тот, который предоставляется при запуске vue-cli init webpack
со всеми параметрами по умолчанию. Поскольку это создает много кода, я не вставляю все здесь. Если есть необходимость в некоторых конкретных отрывках, я с удовольствием обновлю вопрос.
Официальная документация Vue.js бесполезна для моей цели, потому что она не рассматривает настройку TypeScript с SFC. Последнее, что я пробовал, было последним в списке. Я точно следил за настройкой, но меня это вызвало следующую ошибку на npm run dev
:
[tsl] ERROR in /Users/[REDACTED]/ts-test/src/main.ts(12,3)
TS2345: Argument of type '{ el: string; router: any; template: string; components: { App: { name: string; }; }; }' is not assignable to parameter of type 'ComponentOptions<Vue, DefaultData<Vue>, DefaultMethods<Vue>, DefaultComputed, PropsDefinition<Rec...'.
Object literal may only specify known properties, and 'router' does not exist in type 'ComponentOptions<Vue, DefaultData<Vue>, DefaultMethods<Vue>, DefaultComputed, PropsDefinition<Rec...'.
Кто-нибудь может рассказать о том, почему это происходит и как его решить? Еще лучше, я очень хотел бы получить краткий, минимальный шаг за шагом пример настройки рабочей конфигурации Vue.js + TypeScript с помощью шаблона webpack
.
Я уже успешно выполнил несколько клиентских проектов, которые запускаются в Vue.js с помощью ванильного JavaScript, но эта утилита TypeScript в сочетании с Vue.js просто путает меня от меня.