解決 TypeScript 引入第三方包垫蛆,報(bào)無(wú)法找到模塊“XXX”的聲明文件錯(cuò)誤
解決辦法:
以 react-router-dom 模塊為例解決辦法有兩種
方法一
根據(jù)報(bào)錯(cuò)提示嘗試安裝該庫(kù)的TypeScript版本 (該庫(kù)的 ts 聲明文件)呵哨,也就是在該庫(kù)的名稱(chēng)前加上 @types/
本例子為 npm install -D @types/react-router-dom
其它庫(kù)如下:
npm install -D @types/XXX
or
yarn add -D @types/XXX
但是泉坐,不是所有的第三方庫(kù)都有 TypeScript 的版本判帮,所以方法一不能保證百分百有效局嘁,如果方法一不奏效,那么我們來(lái)看一下方法二晦墙。
方法二
自己定義類(lèi)型
在方法一可行的情況下悦昵,推薦使用方法一
1、在項(xiàng)目根目錄新建 typings 文件夾晌畅〉福【typings 可以換成其它名字,比如 types】
4连躏、聲明模塊類(lèi)型剩岳, 在 typings 文件夾下的 XXX.d.ts 文件
declare module 'XXX' {
const content: any
// 這里的 content 可以根據(jù)自己的需要,添加需要的類(lèi)型入热,這的話(huà)可以讓 ts 更好的提示
/**
type content = {
test: string
}
*/
export = content
}
本例子為:
declare module 'react-router-dom' {
const content: any
export = content
}
效果如下