使用 TypeScript 做出反应,不要将 {} 用作类型。 {
React using TypeScript, Don't use {} as a type. {
我在使用 React 和 TypeScript 时在我的 Contact 组件中收到 ESlint 错误 Don't use `{}` as a type. `{}` actually means "any non-nullish value".
。
该组件没有任何道具。
export default class Contact extends React.Component<{}, MyState> {
constructor(props = {}) {
super(props);
this.state = {
signedUp: false,
};
}
}
我尝试使用 null
代替,但这引发了其他 ESLint 错误。
经过大量挖掘,我发现了以下 GitHub 个问题。
通过将以下内容添加到您的 .eslintrc.js
您可以忽略该规则。建议使用 Configurations 使此规则仅适用于 React 组件。这将确保其他地方的强类型化。
"rules": {
"@typescript-eslint/ban-types": [
"error",
{
"extendDefaults": true,
"types": {
"{}": false
}
}
]
}
}
来源:https://github.com/typescript-eslint/typescript-eslint/issues/2063#issuecomment-675156492
扩展 Jordan 答案以仅将此规则应用于 .eslintrc.js
文件中的 React 组件添加
overrides: [
{
files: ['*.tsx, *.jsx'],
rules: {
'@typescript-eslint/ban-types': [
'error',
{
extendDefaults: true,
types: {
'{}': false,
},
},
],
},
},
]
我在使用 React 和 TypeScript 时在我的 Contact 组件中收到 ESlint 错误 Don't use `{}` as a type. `{}` actually means "any non-nullish value".
。
该组件没有任何道具。
export default class Contact extends React.Component<{}, MyState> {
constructor(props = {}) {
super(props);
this.state = {
signedUp: false,
};
}
}
我尝试使用 null
代替,但这引发了其他 ESLint 错误。
经过大量挖掘,我发现了以下 GitHub 个问题。
通过将以下内容添加到您的 .eslintrc.js
您可以忽略该规则。建议使用 Configurations 使此规则仅适用于 React 组件。这将确保其他地方的强类型化。
"rules": {
"@typescript-eslint/ban-types": [
"error",
{
"extendDefaults": true,
"types": {
"{}": false
}
}
]
}
}
来源:https://github.com/typescript-eslint/typescript-eslint/issues/2063#issuecomment-675156492
扩展 Jordan 答案以仅将此规则应用于 .eslintrc.js
文件中的 React 组件添加
overrides: [
{
files: ['*.tsx, *.jsx'],
rules: {
'@typescript-eslint/ban-types': [
'error',
{
extendDefaults: true,
types: {
'{}': false,
},
},
],
},
},
]