報(bào)錯(cuò)
1. main.ts報(bào)錯(cuò)( Cannot find module './App.vue'.)
原因: typescript不能識(shí)別.vue文件
解決辦法: 引入vue的typescript declare庫
在tsconfig.json中加入
其中,types是自己延伸的一些declare
下面的是vue中的types拓展
改后的tsconfig
{
"exclude": [
"node_modules"
],
"compilerOptions": {
"allowSyntheticDefaultImports": true,
"allowJs": true,
"module": "es2015",
"target": "es5",
"moduleResolution": "node",
"experimentalDecorators": true,
"isolatedModules": true,
"typeRoots": [
"./types",
"./node_modules/vue/types"
],
"lib": [
"es2017",
"dom"
],
"sourceMap": true,
"pretty": true
}
}
2. 在ts的vue中引入js的vue
原因: 問題同上,使用node/vue的types沒起作用
解決辦法: 自己寫一個(gè)川无。上面的tsconfig中。types就是為了讓我們多一些自己的declare祖今。
我是叫index.d.ts,名字隨便起啦
里面寫上
declare module "*.vue" {
import Vue from 'vue'
export default Vue
}
3. 在ts的vue中使用一些vue組件帶來的變量拣技,如element-ui的$message(Property '$message' does not exist on type? ...)
原因:缺少typescript類型
解決方法:
this.$message({
type: 'success',
message: '已收藏'
})
拋出錯(cuò)誤 Property '$message' does not exist on type
一千诬、(推薦)
myThis:any = this
this.myThis.$message({
type: 'success',
message: '已收藏'
})
二、起作用
this['$message']({
type: 'success',
message: '已收藏'
})