TypeScript踩坑记

921 阅读1分钟

1.fastClick在Typescript环境下的引入问题。

问题1: 在使用了ts的vue项目中,直接安装fastclick不能正常使用,根据提示得知需要加装一个第三方库的声明文件包。

解决方案:

//解决问题1:
npm install @types/fastclick -D / yarn add  @types/fastclick -D

问题2:

fastClick.attach(document.body) 这条语句接着报错,

提示

Property 'attach' does not exist on type 'typeof fastclick'.

上网查别人的踩坑日记得到的答案是修改node_modules中的@types/fastclick/index.d.ts文件,这个方法有些欠妥当(因为我们每次从一个新的环境下拉下新的代码 node_modules的文件都会重新安装,那岂不是每次都要手动修改?)

解决方案:

//在项目目录下创建一个fastClick.d.ts 声明文件(不需要手动引入,TS编译的时候会自动检查目录下的所有声明文件)

declare module "fastclick" {
    var fastClick: FastClickStatic;
    export = fastclick;
}

到此,问题圆满解决。

2.Require statement not part of import statement.(@typescript-eslint/no-var-requires)。

当在 vue.config.js 中:

const path = require('path')

提示报错:

Require statement not part of import statement.(@typescript-eslint/no-var-requires)

解决办法:

.eslintrc.js中的 rules 属性新增以下内容:

  rules: {
    '@typescript-eslint/no-var-requires': 0
  }