正文从这开始~
.tsx扩展名
为了在React TypeScript中解决Cannot find name报错,我们需要在使用JSX文件时使用.tsx扩展名,在你的tsconfig.json文件中把jsx设置为react-jsx ,并确保为你的应用程序安装所有必要的@types包。
下面是在名为App.ts的文件中发生错误的示例。
export default function App() {
// ⛔️ Cannot find name 'div'.ts(2304)
return (
<div>
<input type="text" id="message" value="Initial value" />
{/* Cannot find name 'button'.ts(2304) */}
<button>Click</button>
</div>
);
}
上述示例代码的问题在于,我们的文件扩展名为
.ts,但是我们在里面却写的JSX代码。
这是不被允许的,因此为了在TS文件中使用JSX,我们必须:
- 将文件命名为
.tsx扩展名; - 在
tsconfig.json中启用jsx选项。
确保编写JSX代码的所有文件拥有.tsx扩展名。
// App.tsx
export default function App() {
return (
<div>
<input type="text" id="message" value="Initial value" />
<button>Click</button>
</div>
);
}
如果在更新文件扩展名为.tsx后,问题依然没有解决,请尝试重启IDE和开发服务器。
tsconfig.json配置文件
打开tsconfig.json文件,确保jsx选项设置为react-jsx。
{
"compilerOptions": {
"jsx": "react-jsx", //