TypeScript手动导入JS文件时,如何指定对应.d.ts声明文件?
解决手动导入模块后的TypeScript声明文件警告问题
当然可以手动指定声明文件,以下是几种实用方案,既能消除警告又能保留代码自动补全:
方案1:配置tsconfig路径映射
在项目的tsconfig.json里,给compilerOptions添加paths配置,把你手动导入的具体路径映射到包含声明文件的模块根目录:
{ "compilerOptions": { // 其他已有的配置... "paths": { "puppeteer-heap-snapshot/dist/cjs/src/index": ["node_modules/puppeteer-heap-snapshot"] } } }
配置后TypeScript会自动到指定路径读取原有的.d.ts文件,完美适配自动补全。
方案2:自定义声明转发文件
在项目里新建types目录(没有就直接建),创建puppeteer-heap-snapshot.d.ts文件,内容如下:
declare module 'puppeteer-heap-snapshot/dist/cjs/src/index' { export * from 'puppeteer-heap-snapshot'; }
这个文件相当于给你导入的特殊路径做了个“类型转发”,直接复用原模块的所有类型定义。
方案3:调整导入路径+配置pkg资源(推荐)
把导入路径改成puppeteer-heap-snapshot/dist/cjs/src/index(去掉.js后缀),然后在package.json的pkg字段里添加资源打包配置:
{ "pkg": { "assets": ["node_modules/puppeteer-heap-snapshot/dist/cjs/**/*"] } }
这样既符合TypeScript的模块解析规则,能自动识别原声明文件,又能解决pkg的编译打包问题,一举两得。
内容的提问来源于stack exchange,提问作者hellapea
相关产品推荐
相关产品推荐

