我有以下文件结构:
// ./src/products/index.ts
export * as commonPages from "./pages";
// ./src/index.ts
export * as products from "./products";
// tsconfig.json
"paths": {
"@scrib/qa": ["./src/index.ts"],
}
// ./src/products/product/homePage.ts
import { products } from "@scrib/qa";
export class HomePage extends products.commonPages.BasePage {...}
编译时出现错误:
TypeError: Cannot read properties of undefined (reading 'commonPages')
at ..\..\..\src\products\product\homePage.ts:6
> 6 | export class HomePage extends products.commonPages.BasePage {
它抱怨
products
未定义。我做错了什么?
设置
paths
并仅使用 tsc
进行编译不会更改发出的导入以使用这些路径。这意味着它们将不起作用。
来自文档:
请注意,此功能不会更改 tsc 发出导入路径的方式,因此路径只能用于通知 TypeScript 另一个工具具有此映射,并将在运行时或捆绑时使用它。
像 vite、webpack、esbuild 这样的捆绑器具有可以读取打字稿配置并修改导入以供您匹配的插件。但
tsc
不会。