假设有第三方模块
foo
没有打字机
foo/src
,而我需要导入一个子模式并以类似于主模块的方式键入它:
索引.ts
import * as foo from "foo/src";
console.log(foo);
自定义类型/foo-src.d.ts
declare module "foo/src" {
import * as foo from "foo";
export = foo;
}
tsconfig.json配置
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"strict": true,
"baseUrl": "./",
"paths": {
"*" : ["custom_typings/*"]
}
},
"files": [
"index.ts"
]
}
我有个错误:
找不到模块“foo/src”的声明文件…/node_modules/foo/src/index.js'隐式地具有“any”类型。
尝试
npm install @types/foo
如果存在或添加一个新的声明(.dts)文件
declare module 'foo/src';
为什么
自定义类型/foo-src.d.ts
忽略的声明文件
foo/src公司
导入?即使声明是错误的,也必须首先得到承认。