问题标签 [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.
typescript - 如何防止非类 TypeScript 接口上的“@typescript-eslint/unbound method”错误?
下面的代码不使用类或this
. 如何防止仅函数(无类)代码中的 typescript-eslint 错误?我知道我可以全局禁用该规则,但该规则对类代码很有用。我知道我可以一次禁用它一行,但考虑到在 TS 接口中定义回调函数是多么普遍,这似乎很痛苦。还有其他方法吗?
这是问题的简化示例:
typescript - 为什么,即使在为 React 组件指定类型参数后,linter 仍然抱怨'' 缺少道具验证?
请考虑以下 TypeScript ( .tsx
) 代码:
通过TextInputProps
作为类型参数传递给React.FC
我可以访问TextInput
我正在解构的属性...props
。但我也需要name
andicon
用于其他目的,所以我创建了一个扩展接口TextInputProps
,在那里指定了这些属性,然后传递InputProps
给React.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
,如果有帮助的话:
reactjs - ES Lint 在打字稿界面中为 SetStateAction 启动
我有一个组件如下。
一切正常,但SetStateAction
导入语句中的红色灯显示以下错误。
'SetStateAction' 已定义但从未使用过。eslint(没有未使用的变量)
但是,正如您所看到的,我在 Props 界面中使用它。在不替换上述界面中的SetStateAction
with的情况下,我该如何克服这个问题。React.SetStateAction
下面是我的 .eslintrc.json 文件。
我使用了 eslint --init 并选择了 airbnb 风格指南。在选择中也选择打字稿。
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 配置:
typescript - 使用声明合并到 ES2015 模块语法重构 TypeScript 代码
我有一个类和一个名称空间,其声明合并定义如下:
我可以将它导入另一个文件并使用 Product、Product.Seller 和 Product.Price 来创建新对象以及进行类型检查:
在我对文件进行 lint 之前,一切都运行良好。我收到错误“ES2015 模块语法优于自定义 TypeScript 模块和命名空间”。
该错误很直观,我可以通过删除命名空间并将 product.ts 作为命名模块导入来轻松摆脱它:
问题是,现在 Product 类本身位于 Product 模块中,我必须将其称为 Product.Product:
我再次尝试匿名导出默认的 Product 类,但我仍然得到一个错误,最后我不得不将它称为 Product.default:
是否可以在遵守无命名空间规则的同时保留原始设计的结果?任何帮助将不胜感激!
typescript - 捕捉打字稿语法错误:if 语句和类方法调用
我在调试中注意到,我最难找到的愚蠢的拼写错误是结果语句,例如:
出于某种原因,VSCode 不会在编译时将这些标记为潜在问题。是否有设置或工具可以警告我此类错误?有时它们很难找到并且花费了我很多时间来追踪,因为当您扫描时它们并不那么明显并且难以搜索。
我意识到这些是合法的打字稿语句,但其他一些语言的 UI 会在条件和称为属性的方法中标记分配,以确保这确实是您想要做的。
javascript - React TypeScript 错误:TS2322 - 类型“”不可分配给类型“IntrinsicAttributes & String”
我有一个新的 .tsx 文件,我希望将标题传递给我的组件。但是,属性“title”使用下面的简单代码返回以下错误。
输入'{标题:字符串;}' 不可分配给类型 'IntrinsicAttributes & String'。“IntrinsicAttributes & String”类型上不存在属性“title”。TS2322
我的 Nav 组件的代码如下:
我仍在进行故障排除,我想知道修复是否与我的 TSConfig 有关。任何建议都会受到欢迎。
如果这有帮助,这是我的 tsconfig.json 的副本
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询问)