在编写一个类组件的时候:
import React from 'react'
export default class GroupComp extends React.Component {
...
render() {
return (
<div className="collapsable-app">
<div className="app-content" ref={this.refContainer} />
</div>
)
}
}
有2个报错:
1、
Parsing error: '>' expected.eslint
找不到名称“div”。ts(2304)
type div = /*unresolved*/ any
2、
应为“>”。ts(1005)
找不到名称“className”。ts(2304)
any
请问为何会报错呢?
使用函数式组件定义不会。
===
我已经安装了:
pnpm install @types/react @types/react-dom --save-dev
这个问题通常与TypeScript的配置和/或ESLint的配置有关。从你的描述来看,有几个可能的原因和解决方案:
确保你的tsconfig.json
文件配置正确,特别是jsx
选项应该被设置为react
或react-jsx
(取决于你的TypeScript版本)。例如:
{
"compilerOptions": {
"jsx": "react-jsx", // 或者 "react" 取决于你的TypeScript版本
"allowJs": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"skipLibCheck": true
},
"include": ["src/**/*"]
}
确保你的.eslintrc
或eslintConfig
在package.json
中正确配置了React的插件和规则。特别是,你可能需要安装和配置eslint-plugin-react
以及确保它支持你正在使用的JSX语法。
如果你还没有安装,可以通过npm或pnpm来安装:
pnpm install eslint-plugin-react --save-dev
.eslintrc
或eslintConfig
确保你的ESLint配置文件包含了React插件,并且配置了适当的规则。例如:
{
"extends": [
"eslint:recommended",
"plugin:react/recommended"
],
"parserOptions": {
"ecmaFeatures": {
"jsx": true
}
},
"plugins": [
"react"
],
"rules": {
// 你可以在这里覆盖或添加额外的规则
}
}
确保你的文件扩展名是.tsx
而不是.ts
,特别是当你的组件使用了JSX时。.tsx
扩展名告诉TypeScript编译器这个文件包含JSX代码。
虽然你已经安装了@types/react
和@types/react-dom
,但确保它们与你的react
和react-dom
库版本兼容。有时候,类型定义可能滞后于库本身。
tsconfig.json
中的jsx
选项正确。eslint-plugin-react
并正确配置了ESLint。.tsx
。react
和@types/react
的版本兼容性。按照这些步骤操作后,问题应该能得到解决。如果问题依旧,可能需要检查更详细的配置或查看是否有其他相关的错误或警告信息。
vue3 + ts项目,使用localStorage获取本地存储,ts报错 这该咋整?
我试图在Ionic上使用Google Analytics插件,文档代码不适用于我使用: 编辑器说“ts:找不到名称‘GoogleAnalytics’”,但它可以看到一些对象GoogleAnalyticsOriginal,该对象已编译但不工作(在运行时出错)。 这些是系统规范ionic(ionic CLI):4.5.0 离子骨架:离子角3.9.2 @爱奥尼亚/应用程序脚本:3.2.1 Cordova
ts文件中,Math.round和parseInt函数中包裹同样的表达式,为什么parseInt方法会有报错? Math.round正常编译,parseInt编译报错
我是angular 2和typescript的新手,正在尝试为我的弹出窗口调用RocketLaunch函数。 如果我在弹出窗口外声明它不调用,但如果我在弹出窗口内移动它抛出此错误: 错误TS2304:找不到名称“$event” 提供以下相关代码和错误:
我通过pnpm的workspace搭建了一个工作环境,并且在项目中安装typescript,但是在packages中的项目中无法识别别名文件的路径。报错如下: 我在对应的packages项目中添加了tsconfig.json,配置如下: 配置中已经包含了,对应的文件路径,在vite.config.ts也配置了相应的别名路径,项目时可以正常运行的。只是vscode会抛出这个错误,**.ts文件不会有
在vue3和pinia使用ts type+sId+zId 三个都会报 “property type does not exist on object” 新补充 v1,v2...是接口返回来的,自己重新定义了新key,v1写在IUserState了没有报错,其他都飘红