问题标签 [typescript-eslint]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
6244 浏览

typescript - 如何防止非类 TypeScript 接口上的“@typescript-eslint/unbound method”错误?

下面的代码不使用类或this. 如何防止仅函数(无类)代码中的 typescript-eslint 错误?我知道我可以全局禁用该规则,但该规则对类代码很有用。我知道我可以一次禁用它一行,但考虑到在 TS 接口中定义回调函数是多么普遍,这似乎很痛苦。还有其他方法吗?

这是问题的简化示例:

0 投票
1 回答
509 浏览

typescript - 为什么,即使在为 React 组件指定类型参数后,linter 仍然抱怨'' 缺少道具验证?

请考虑以下 TypeScript ( .tsx) 代码:

通过TextInputProps作为类型参数传递给React.FC我可以访问TextInput我正在解构的属性...props。但我也需要nameandicon用于其他目的,所以我创建了一个扩展接口TextInputProps,在那里指定了这些属性,然后传递InputPropsReact.FC

现在我得到'name' is missing in props validation - eslintreact/prop-types了('icon' 相同),但是当我尝试获取内部指定的任何属性时,这并没有发生TextInputProps

写作const Input: React.FC<InputProps> = ({ name, icon, ...props }: InputProps) => (/*...*/);使 linter 停止抱怨,但我仍然不明白为什么使用 type 参数不会。有人可以向我澄清这一点吗?我是不是搞错了一些概念,还是只是 linter 的问题?

PS:我正在用 ESLint 扩展在 VS Code 上写这篇文章。

PS2:这是里面的代码styles.ts,如果有帮助的话:

0 投票
2 回答
268 浏览

reactjs - ES Lint 在打字稿界面中为 SetStateAction 启动

我有一个组件如下。

一切正常,但SetStateAction导入语句中的红色灯显示以下错误。

'SetStateAction' 已定义但从未使用过。eslint(没有未使用的变量)

但是,正如您所看到的,我在 Props 界面中使用它。在不替换上述界面中的SetStateActionwith的情况下,我该如何克服这个问题。React.SetStateAction

下面是我的 .eslintrc.json 文件。

我使用了 eslint --init 并选择了 airbnb 风格指南。在选择中也选择打字稿。

0 投票
1 回答
2158 浏览

typescript - SAM Serverless Monorepo 的 ESLint“无法解析模块路径”

我正在为 AWS Lambda/APIGateway 构建一个简单的 Hello World 函数,并希望合并 ESLint 和 Typescript 功能。通常,当我使用 Typescript 和 ESlint 时,我需要eslint-plugin-import包并且需要在我的.eslintrc文件中指定扩展名,如下所示:

Unable to resolve path to module 'aws-lambda'但是,有了这个 monorepo,即使在设置之后,我仍然会收到错误消息。这是我的回购设置:

这是我的.eslintrc配置:

这是我的 tsconfig.json:

最后是我的 webpack 配置:

0 投票
1 回答
453 浏览

typescript - 使用声明合并到 ES2015 模块语法重构 TypeScript 代码

我有一个类和一个名称空间,其声明合并定义如下:

我可以将它导入另一个文件并使用 Product、Product.Seller 和 Product.Price 来创建新对象以及进行类型检查:

在我对文件进行 lint 之前,一切都运行良好。我收到错误“ES2015 模块语法优于自定义 TypeScript 模块和命名空间”。

该错误很直观,我可以通过删除命名空间并将 product.ts 作为命名模块导入来轻松摆脱它:

问题是,现在 Product 类本身位于 Product 模块中,我必须将其称为 Product.Product:

我再次尝试匿名导出默认的 Product 类,但我仍然得到一个错误,最后我不得不将它称为 Product.default:

是否可以在遵守无命名空间规则的同时保留原始设计的结果?任何帮助将不胜感激!

0 投票
1 回答
65 浏览

typescript - 捕捉打字稿语法错误:if 语句和类方法调用

我在调试中注意到,我最难找到的愚蠢的拼写错误是结果语句,例如:

出于某种原因,VSCode 不会在编译时将这些标记为潜在问题。是否有设置或工具可以警告我此类错误?有时它们很难找到并且花费了我很多时间来追踪,因为当您扫描时它们并不那么明显并且难以搜索。

我意识到这些是合法的打字稿语句,但其他一些语言的 UI 会在条件和称为属性的方法中标记分配,以确保这确实是您想要做的。

0 投票
1 回答
2936 浏览

javascript - React TypeScript 错误:TS2322 - 类型“”不可分配给类型“IntrinsicAttributes & String”

我有一个新的 .tsx 文件,我希望将标题传递给我的组件。但是,属性“title”使用下面的简单代码返回以下错误。

输入'{标题:字符串;}' 不可分配给类型 'IntrinsicAttributes & String'。“IntrinsicAttributes & String”类型上不存在属性“title”。TS2322

我的 Nav 组件的代码如下:

我仍在进行故障排除,我想知道修复是否与我的 TSConfig 有关。任何建议都会受到欢迎。

如果这有帮助,这是我的 tsconfig.json 的副本

0 投票
1 回答
706 浏览

reactjs - 如何在使用 react-scripts 时从终端禁用 no-unused-vars 警告

()另外,我在这个网站上尝试了一些修复,但没有任何效果......所以我想再次发布同样的问题。

0 投票
0 回答
3185 浏览

node.js - 如何修复“在索引 0 处找到带有非文字参数的 fs.readFile”?

我正在尝试在 TypeScript 项目中添加eslint-plugin-security 。但是,对于这些代码

我收到了很多这样的 ESLint 警告:

我在https://github.com/nodesecurity/eslint-plugin-security#detect-non-literal-fs-filename找到了有关此 ESLint 错误的文档

但我仍然不知道如何解决它。任何指南都会有所帮助!谢谢


更新

发现只要使用传递返回的路径path.join就会path.resolve出现这个ESLint问题。

如果我更改为绝对路径,ESLint 问题就消失了。path.join但是,这通过or失去了相对路径的好处path.resolve

寻找替代/更好的方法(如果存在)。

(可能是误报?在https://github.com/nodesecurity/eslint-plugin-security/issues/65询问)

0 投票
0 回答
224 浏览

typescript - eslint 某些规则不会显示在编辑器上,但会显示在控制台上

我正在使用eslintwith@typescript-eslint并且其运行良好的错误按预期显示在编辑器上,但特定规则@typescript-eslint/consistent-type-assertions仅显示在控制台上而不显示在编辑器上。

配置了eslint扩展,显示编辑器错误: 在此处输入图像描述

但由于某种原因,此特定规则不会显示在编辑器上: 在此处输入图像描述

我需要添加什么样的配置才能允许编辑器错误(可能还有其他规则)不起作用?

编辑:.eslintrc.js

设置.json