typescript+vue 常见报错

报错1. main.ts报错( Cannot find module ‘./App.vue’.)

原因: typescript不能识别.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没起作用

解决办法: 自己写一个。上面的tsconfig中。types就是为了让我们多一些自己的declare。我是叫index.d.ts,名字随便起啦
里面写上

declare module “*.vue” { import Vue from ‘vue’ export default Vue }3. 在ts的vue中使用一些vue组件带来的变量,如element-ui的 m e s s a g e ( P r o p e r t y ′ message(Property ' message(Propertymessage’ does not exist on type …)
原因:缺少typescript类型

解决方法:this. m e s s a g e ( t y p e : ′ s u c c e s s ′ , m e s s a g e : ′ 已 收 藏 ′ ) 抛 出 错 误 P r o p e r t y ′ message({ type: 'success', message: '已收藏' }) 抛出错误 Property ' message(type:success,message:)Propertymessage’ does not exist on type

一、(推荐)myThis:any = this this.myThis.$message({ type: ‘success’, message: ‘已收藏’ })
二、起作用

this[’$message’]({ type: ‘success’, message: ‘已收藏’ })
三、(推荐)

在types下新建如下目录结构

目录结构/index.d.ts/ export declare class MessageParam { type: string; message: string } export declare interface Message { (messageParam: MessageParam):void; } /vue.d.ts/ import Vue = require(“vue”); import { Message } from “./index”; declare module “vue/types/vue” { interface Vue { $message: Message; } }
相当于扩展typescript的declare

4.XMLHttpRequest is not defined在typescript中,经常要用一些自己从其他js插件中引入的变量。但直接在ts中写,ts会报not defined的错误
解决办法: 使用window.XMLHttpRequest

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

X W F

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值