【发布时间】:2019-03-21 00:56:28
【问题描述】:
鉴于第三方模块foo 没有foo/src 的类型,而我需要导入一个子模式并将其键入类似于主模块:
index.ts
import * as foo from "foo/src";
console.log(foo);
custom_typings/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(如果存在)或添加包含declare module 'foo/src';的新声明(.d.ts)文件
为什么 foo/src 导入忽略 custom_typings/foo-src.d.ts 声明文件?即使声明是错误的,也必须首先承认它。
【问题讨论】:
-
例子是
ramda用作模块,ramda/es用作子模块。ramda有类型,而ramda/es没有。
标签: typescript typescript-typings