【发布时间】:2021-09-11 12:35:11
【问题描述】:
我正在尝试扩展第三方私有 npm 模块的主题。该项目编译成功,但我不断收到打字稿错误Circular definition of import alias 'externalTheme'
以下是我如何扩展主题。这完美地结合了我的主题和外部主题
import { externalTheme, ExternalThemeInterface } from 'external-npm-repo...'
import { colors, ColorsTypes } from './colors'
export const MyTheme: MyThemeInterface = {
...theme,
colors,
}
export interface MyThemeInterface extends ExternalThemeInterface {
colors: ColorsTypes
}
我得到的错误是使用 externalTheme 导入引用循环依赖,我不确定这到底是什么意思,并且在研究时没有找到任何明确的参考。
这些是我的 Typescript 设置
"allowJs": true,
"alwaysStrict": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"isolatedModules": true,
"jsx": "preserve",
"lib": ["dom", "es2017"],
"module": "esnext",
"moduleResolution": "node",
"noEmit": true,
"noFallthroughCasesInSwitch": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"resolveJsonModule": true,
"skipLibCheck": true,
"strict": true,
"target": "esnext"
【问题讨论】:
-
我怀疑你的依赖有问题。它编译是因为
skipLibCheck,它关闭了依赖项中的类型检查。无论您在哪里看到错误都没有选择该设置。 -
您能尝试在playground 中复制它吗?因为如果不查看不同的类型,就不可能确定哪个部分导致了循环定义。
标签: javascript reactjs typescript styled-components