[英]How to use TypeScript with Vue.js and Single File Components?
我在网上搜索了一个 Vue.js + TypeScript 设置的最小工作示例。 按照“现代 JavaScript 堆栈”的惯例,这些教程中的大多数要么是过时的,尽管是在几个月前编写的,要么取决于非常具体的设置。 似乎没有通用的、可验证的示例可以作为基础。
以下是我考虑的一些资源:
我使用的基本模板是通过运行带有所有默认选项的vue-cli init webpack
提供的。 由于这会产生大量代码,因此我不会在此处粘贴所有内容。 如果需要一些具体的摘录,我很乐意更新问题。
官方的 Vue.js 文档对我来说毫无用处,因为它没有考虑使用 SFC 设置 TypeScript。 我尝试的最新的是列表中的最后一个。 我精确地遵循了设置,但它让我在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...'.
谁能阐明为什么会发生这种情况以及如何解决它? 更好的是,我非常欢迎一个简洁的、最小的、逐步的示例,说明如何使用webpack
模板设置工作的 Vue.js + TypeScript 配置。
我已经成功地完成了几个在 Vue.js 中使用 vanilla JavaScript 在生产环境中运行的客户端项目,但是这个 TypeScript 工具与 Vue.js 的结合让我很困惑。
我尝试将typescript
与vue
一起使用。 我个人的看法:效果不好。 由于某些vue
内部不适合typescript
:
vuex
与this.$store.dispatch('some_action')
Vue.use
、 Vue.mixin
和其他类似的改变全局Vue
实例的东西但是,在进行研究时,我发现了这些精彩的样板:Daniel Rosenwasser 的 typescript -vue-tutorial和 Microsoft 的 TypeScript-Vue-Starter 。
我也尝试过自己用typescript
模仿vue-webpack-template
: https ://github.com/sobolevn/wemake-vue-template
还有一些很好的工具可以让你的typescript
+ vue
工作流程更好:
更新
在 2018 年 9 月,应该尝试使用带有TypeScript 插件的新vue-cli
。
绝对同意@sobolevn 的意见。 但是,有很多信息让我判断,社区对 TypeScript 的支持值得等待。
Vue 的生态系统更像是 TypeScript:
所以如果你有时间等待,你可以暂时观察一段时间。 或者,您可以参考这些项目: TypeScript-Vue-Starter和A Webpack Template Fork With Typescript Support 。
这看起来像是最新的 vue-cli 模板,有大量的星星并支持 vue 2.5。
我认为我没有在其他答案中特别提到它
vue init ducksoupdev/vue-webpack-typescript my-project
使用最新版本的 VueJS,可以使用 Vue、Typescript 和 JSX 创建一个可靠且可维护的项目。 我为Vue.TSX的初学者创建了一个样板文件
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.