解决 TypeScript 引入第三方包,报无法找到模块“XXX”的声明文件错误
解决办法:
以 react-router-dom 模块为例解决办法有两种
方法一
根据报错提示尝试安装该库的TypeScript版本 (该库的 ts 声明文件),也就是在该库的名称前加上 @types/
本例子为 npm install -D @types/react-router-dom
其它库如下:
npm install -D @types/XXX
or
yarn add -D @types/XXX
但是,不是所有的第三方库都有 TypeScript 的版本,所以方法一不能保证百分百有效,如果方法一不奏效,那么我们来看一下方法二。
方法二
自己定义类型
在方法一可行的情况下,推荐使用方法一
1、在项目根目录新建 typings 文件夹。【typings 可以换成其它名字,比如 types】
4、声明模块类型, 在 typings 文件夹下的 XXX.d.ts 文件
declare module 'XXX' {
const content: any
// 这里的 content 可以根据自己的需要,添加需要的类型,这的话可以让 ts 更好的提示
/**
type content = {
test: string
}
*/
export = content
}
本例子为:
declare module 'react-router-dom' {
const content: any
export = content
}
效果如下