首页 > 解决方案 > 对于 TypeScript 项目,“类型”是否等同于“主要”?

问题描述

模块解析文档

同样,非相对导入将遵循 Node.js 解析逻辑,首先查找文件,然后查找适用的文件夹。所以import { b } from "moduleB"在源文件中/root/src/moduleA.ts 会导致以下查找:

  1. /root/src/node_modules/moduleB.ts
  2. /root/src/node_modules/moduleB.tsx
  3. /root/src/node_modules/moduleB.d.ts
  4. /root/src/node_modules/moduleB/package.json(如果它指定了一个"types"属性)
  5. /root/src/node_modules/@types/moduleB.d.ts
  6. /root/src/node_modules/moduleB/index.ts
  7. /root/src/node_modules/moduleB/index.tsx
  8. /root/src/node_modules/moduleB/index.d.ts

所以 TypeScript 似乎没有考虑“main”属性(就像 Node.js所做的那样),但它确实会寻找“类型”。它们是等效的,还是后者仅导入 *.d.ts 文件?

标签: typescriptnode-modulespackage.json

解决方案


我认为您在谈论package.json文件的属性。如果是这种情况,正如您所猜测的那样, TypeScripttypes使用一个条目来加载模块的类型(并且仅是类型)。仍然需要该条目来加载模块的JavaScript端。main


推荐阅读