安装包
npm install typescript --save-dev // 4.1.3npm install ts-loader --save-dev // 8.0.14npm install tslint --save-dev // 6.1.3npm install tslint-loader --save-dev // 3.5.4npm install tslint-config-standard --save-dev // 9.0.0npm install vue-property-decorator --save-dev // 9.1.2
修改配置文件
添加ts加载器
base.js
entry: {app: './src/mian.ts' // 入口文件, 旧main.js}reslove: {extensions: ['.js', 'ts', '.vue', '.json'] // 引入模块时不带扩展}module: {rules: [{test: /\.ts$/,exclude: /node_modules/,enforce: 'pre',loader: 'tslint-loader'},{test: /\.tsx?$/,loader: 'ts-loader',exclude: /node_modules/,options: {appendTsSuffixTo: [/\.vue$/]}},]}
错误Cannot read property ‘install’ of undefined at Function.Vue.use
ts配置文件
tslint 配置文件
声明全局变量、class、module、function、命名空间
shims-vue.d.ts
declare module "*.vue" {import Vue from 'vue'export default Vue}declare module 'vue/types/vue' {interface Vue {$notify: any}}declare var window: any
shims-tsx.d.ts
import Vue, { VNode } from 'vue';declare global {namespace JSX {// tslint:disable no-empty-interfaceinterface Element extends VNode {}// tslint:disable no-empty-interfaceinterface ElementClass extends Vue {}interface IntrinsicElements {[elem: string]: any;}}}
参考:
转转vue接入ts
