Fre*_*888 103 typescript
我正在尝试使用@chakra-ui/react
npm 库中的 Button,但 Button 元素会产生此错误:
TypeScript:表达式生成的联合类型过于复杂而无法表示。ts(2590) 示例:
import {Button} from "@chakra-ui/react"
function Page() {
return <Button onClick={(event) => {}}>Text</Button>
}
Run Code Online (Sandbox Code Playgroud)
Fre*_*888 296
确保您使用正确的打字稿版本。Typescript 扩展可以使用自己的版本,而不是使用在 package.json 中设置的项目的 Typescript 版本
Use workspace version
选择如果没有Use workspace version
选项请确保typescript
您的依赖项中有package.json
并且您已使用npm install
或安装了依赖项npm clean-install
如果您仍然没有它 - 添加typescript.enablePromptUseWorkspaceTsdk: true
到.vscode/settings.json
或查找设置Enable Prompt Use Workspace Tsdk
并启用它
更新您的 vscode 配置./.vscode/settings.json
(如果没有,请创建它)
{
"typescript.enablePromptUseWorkspaceTsdk": true,
"typescript.tsdk": "node_modules/typescript/lib"
}
Run Code Online (Sandbox Code Playgroud)
设置 typescript 扩展以提示您是否使用工作区版本
在 VsCode 设置中找到设置“Typescript: Enable Prompt Use Workspace Tsdk”并启用它
下次您在 VsCode 中打开工作区时,您将看到此通知:
您想单击“允许”:)
nvm install --latest-npm
x.latest.latest
)以免发生重大更改node_modules
并npm install
小智 18
我自己在next js 13中使用chakra-ui组件时也遇到了同样的问题。
下一个 js 版本13附带 typescript 版本5.0.2。我已将文件中的 typescript 版本更改为 4.9.5 package.json
,并在删除文件后重新安装了 npm 包package-lock.json
。这个问题得到了解决,我用打字稿编译器命令进行了测试
npx tsc --noEmit
Run Code Online (Sandbox Code Playgroud)
我认为该问题与 NX 环境设置有关。我猜你在设置 NX 应用程序时选择了“情感”选项(我也做了同样的事情)。
我可以确认问题已通过"jsxImportSource": "@emotion/react"
从 中删除而得到解决tsconfig.json
。不需要额外的步骤。
使用"typescript": "5.0.4"
和"@chakra-ui/react": "2.6.0"
. 都好。
转到 VSCode 中的“设置”并搜索'TypeScript version'
勾选'Typescript: Enable Prompt Use Workspace Tsdk'
您将收到提示,单击“使用工作区版本”。
归档时间: |
|
查看次数: |
63379 次 |
最近记录: |