使用TypeScript导入Underscore模块时,如何解决类型声明未找到错误
解决TypeScript中导入underscore单个模块的类型声明错误
方法1:使用官方推荐的整体导入方式
直接从underscore根模块导入map,自动复用@types/underscore提供的完整类型定义:
import { map } from 'underscore';
这是最简洁且符合TypeScript第三方库类型使用规范的方案。
方法2:自定义单个模块的类型声明
如果必须单独导入underscore/modules/map,可以手动补充类型声明:
- 在项目根目录创建
typings文件夹(无则新建),并在其中创建underscore-modules.d.ts文件 - 在文件中写入如下类型声明:
declare module 'underscore/modules/map' { import type { MapIterator } from 'underscore'; const map: <T, U>(list: T[], iterator: MapIterator<T, U>, context?: any) => U[]; export default map; }
- 确保
tsconfig.json的include字段包含该类型声明文件夹,示例配置:
{ "include": ["src/**/*", "typings/**/*"] }
完成后TypeScript就能识别该模块的类型,错误会自动消除。
方法3:临时关闭类型检查(不推荐)
修改tsconfig.json中的noImplicitAny为false,让TypeScript忽略无类型声明的模块。但此方法会丢失TypeScript的类型校验优势,仅适合临时应急场景。
内容的提问来源于stack exchange,提问作者marzzy
相关产品推荐
相关产品推荐

