在https://www.typescriptlang.org/docs/handbook/module-resolution.html中写到NodeJS / typescript如何在模块目录中搜索“ main”文件(如果有人导入的话)。但这不适用于d.ts
文件(.ts
文件正常工作)。
我已经通过gts编译了项目。
build/
-| moduleA.js
-| moduleA.d.ts
-| moduleB/
---| index.js
---| index.d.ts
在first.d.ts
中,tslint引发错误Cannot find module './moduleB'
。最初,我尝试安装typescript@next
和tslint@next
,但这并没有帮助。然后,我将路径重写为./moduleB/index
,并修复了此错误。
// moduleA.d.ts
import { some } from './moduleB'; // ERROR: Cannot find model './moduleB';
import { some } from './moduleB/'; // ERROR: Cannot find model './moduleB/';
import { some } from './moduleB/index'; // work
从文档中(上面的链接):
例如,像
import { b } from "./moduleB"
中的/root/src/moduleA.ts
这样的import语句将导致尝试以下位置来定位"./moduleB"
:1. /root/src/moduleB.ts 2. /root/src/moduleB.tsx 3. /root/src/moduleB.d.ts 4. /root/src/moduleB/package.json (if it specifies a "types" property) 5. /root/src/moduleB/index.ts 6. /root/src/moduleB/index.tsx 7. /root/src/moduleB/index.d.ts <-- it is my case!
我希望打字稿理解我想导入./moduleB/index
而不指定/index
。我该如何实现?
答案 0 :(得分:0)
这是您要实现的目标。您可以指定要导入的index
,它将为您搜索路由,但是如果您说要导入“ some-folder”,它将尝试使用该名称查找模块。