首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

让@typescript-eslint/require-await继续,但免除单个实例?

@typescript-eslint/require-await 是一个 ESLint 规则,它要求所有标记为 async 的函数内部必须使用 await 关键字。这个规则的目的是防止开发者错误地使用 async 函数而不等待其内部的 Promise 完成,这可能导致未处理的 Promise 拒绝和难以追踪的错误。

如果你想要继续使用这个规则,但希望对某个特定的实例进行豁免,你可以使用 ESLint 的注释指令来实现。以下是如何操作的示例:

代码语言:txt
复制
// 假设这是你想要豁免的 async 函数
async function myAsyncFunction() {
  // eslint-disable-next-line @typescript-eslint/require-await
  return someAsyncOperation();
}

在上面的代码中,eslint-disable-next-line @typescript-eslint/require-await 注释告诉 ESLint 在下一行忽略 @typescript-eslint/require-await 规则。这样,myAsyncFunction 函数就可以不使用 await 关键字而不会触发 ESLint 错误。

如果你想要在多个地方豁免这个规则,但又不想在每个地方都添加注释,你可以考虑使用 ESLint 的配置文件来局部禁用规则。例如,在 .eslintrc 文件中,你可以为特定的文件或目录设置规则:

代码语言:txt
复制
{
  "rules": {
    "@typescript-eslint/require-await": "error"
  },
  "overrides": [
    {
      "files": ["src/path/to/exempted-file.ts"],
      "rules": {
        "@typescript-eslint/require-await": "off"
      }
    }
  ]
}

在这个配置中,overrides 部分允许你为特定的文件或目录指定不同的规则设置。在这个例子中,src/path/to/exempted-file.ts 文件中的 @typescript-eslint/require-await 规则将被关闭。

请注意,过度使用这种豁免可能会降低代码的一致性和可维护性,因此应该谨慎使用,并且只在确实有必要的情况下使用。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Node.js 项目 TypeScript 改造指南

TypeScript-ESLint 早期的 TypeScript 项目一般使用 TSLint ,但2019年初 TypeScript 官方决定全面采用 ESLint,因此 TypeScript 的规范,...typescript-eslint/parser 用于解析ts文件 'extends': ['plugin:@typescript-eslint/recommended'], // 让ESLint继承...,并不会添加工具类,但会将单个属性导出修改为整个模块导出,并将原来的函数调用表达式修改为成员函数调用表达式。...但这种方式是有个陷阱,举个例子,如果有第三方模块,其文件是用 babel 或者也是 ts 转换过的,那其模块代码很有可能包含了 __esModule 属性,但同时没有exports.default导出,...再次申明,正确的姿势是申明 Interface 或者 Type,而不是 any,此处用 any 只是为了快速改造旧项目让其能先 run 起来。

8.4K32
  • Node.js项目TypeScript改造指南

    TypeScript-ESLint 早期的 TypeScript 项目一般使用 TSLint ,但2019年初 TypeScript 官方决定全面采用 ESLint,因此 TypeScript 的规范,...typescript-eslint/parser 用于解析ts文件 'extends': ['plugin:@typescript-eslint/recommended'], // 让ESLint继承...,并不会添加工具类,但会将单个属性导出修改为整个模块导出,并将原来的函数调用表达式修改为成员函数调用表达式。...但这种方式是有个陷阱,举个例子,如果有第三方模块,其文件是用 babel 或者也是 ts 转换过的,那其模块代码很有可能包含了 __esModule 属性,但同时没有exports.default导出,...再次申明,正确的姿势是申明 Interface 或者 Type,而不是 any,此处用 any 只是为了快速改造旧项目让其能先 run 起来。

    4.6K10

    Node.js项目TypeScript改造指南

    TypeScript-ESLint 早期的 TypeScript 项目一般使用 TSLint ,但2019年初 TypeScript 官方决定全面采用 ESLint,因此 TypeScript 的规范,...typescript-eslint/parser 用于解析ts文件 'extends': ['plugin:@typescript-eslint/recommended'], // 让ESLint继承...,并不会添加工具类,但会将单个属性导出修改为整个模块导出,并将原来的函数调用表达式修改为成员函数调用表达式。...但这种方式是有个陷阱,举个例子,如果有第三方模块,其文件是用 babel 或者也是 ts 转换过的,那其模块代码很有可能包含了 __esModule 属性,但同时没有exports.default导出,...再次申明,正确的姿势是申明 Interface 或者 Type,而不是 any,此处用 any 只是为了快速改造旧项目让其能先 run 起来。

    4.4K20

    编写自己的 TypeScript CLI

    :我们首先使用 @typescript-eslint/parser 来让 ESLint 能够理解 TypeScript 语法,然后我们应用 @typescript-eslint/eslint-plugin...我们希望用户与 CLI 交互,就是简单地传递一个 URL 让 Lighthouse 运行,我们还希望传入一个选项来指定 Lighthouse 应该在 URL 上运行多少次,如下: # 没有选项 $ my-script...program.opts() console.log(`url: ${url}, iteration: ${options.iteration}`) } run() 我们首先实例化了一个...Command,然后使用实例 program 去定义: 一个必需的参数:我们给它起了一个名称 url和一个描述; 一个选项:我们给它一个短标志和一个长标志,一个描述和一个默认值。...这是因为它们表示页面初始化生命周期中的最早和最新时刻,这是一种确定中位数的更可靠的方法,而不是简单的从单个测量中找到中位数的方法。 现在再试一次命令,看看结果如何。

    2.4K30

    深入浅出 Eslint,告别 Lint 恐惧症

    module.exports = { parser: '@typescript-eslint/parser', // 修改解析器为 @typescript-eslint/parser rules...此时我们在 index.js 中定义了 a 变量但为使用,EsLint 会为我们检测出错误 'a' is assigned a value but never used.eslintno-unused-vars...处理器可以从另一种文件中提取 JavaScript 代码,然后让 ESLint 检测 JavaScript 代码。或者处理器可以在预处理中转换 JavaScript 代码。...之后我们着重来看下校验单个规则是如何编写的: 在 EsLint 中单个约定规则存在三个重要的目录: docs 相关规则的文档说明 lib 相关规则的具体实现代码 tests 相关规则的测试用例代码 我们着重来看下...// 碰到函数定义时进入 do somthing }, }; }, 而 create 函数中的 context 参数则为我们提供了一系列上下文相关的 Api 从而让规则完成他们的工作

    2K20

    实战案例:初探工程配置 & 图标组件热身

    好,这个时候我们需要把 Prettier 的输出反馈给 ESLint,让 ESLint 来做提示,这需要用到 eslint-plugin-prettier[7]。...对于 ESLint 和 TypeScript 的结合,我们主要关注这个仓库 typescript-eslint[11],这里面有我们需要的 @typescript-eslint/parser和@typescript-eslint...PUA[15],即 Private Use Areas,私人使用区相同的代码点可被分配为不同的字符,因此用户可能因安装了某种字体,看到其显示为一种形态,但使用了其他字体的用户可能看到完全不同的字符。...结语 在本节中,我们继续完善了一些工程化配置,但是在配置上也是点到为止,没有堆砌太多的插件或者配置项,以防让人眼花缭乱,无法抓到重点。...接下来,我们会继续通过一些实战案例查漏补缺,在实际运用中看看我们还缺失一些什么东西。如果您对我的专栏感兴趣,欢迎您订阅关注本专栏[16],接下来可以一同探讨和交流组件库开发过程中遇到的问题。

    63620

    Scrapy的Meta、异常处理

    对象流转中修改meta download_slot download_latency 在RESPONSE对象中获取meta #等同于response.request.meta response.meta 自定义单个请求的配置...... failure.request 当前异常请求对象 failure.value 当前的异常对象 CloseSpider 遇到像cookie过期, 账号警告, 代理池空了这样严重的错, 需要关闭实例..., 可抛出CloseSpider异常, 该异常最终会流向ENGINE后关闭爬虫实例. from scrapy.exceptions import CloseSpider 中间件 处理可控的异常 def...process_exception(self, request, exception, spider): pass 返回None 由下一层中间件继续处理, 如果你指定了errback, 最终会到达...池的补充 # 补充cookie池 if isinstance(exception, IndexError): # 我已经知道异常产生原因, 所以免除当前重试次数的计数

    51610

    前端代码质量—怎样实现一个支持多语言、高扩展性的 Linter

    连 Microsoft 都通过 typescript-eslint 项目让 ESLint 可以支持 TypeScript 的分析。...TSLint TSLint 是早期的 TypeScript 的分析工具,后由兼容 ESLint 的 @typescript-eslint 项目所替代,TSLint 不再维护。...实例和配置则是由派生的 Linter 实现,比如 ECMAScriptLinter 就会基于 ESLinter 控制并准备 CLIEngine 实例和配置,再交由 ESLinter 提供的文件检查接口返回检查结果...引擎需要准备 Linter 的实例,并负责: 按照顺序调度 Linter 检查指定文件夹 将单个文件的诊断请求分配到合适的 Linter 执行并返回诊断结果 将单个文件的自动修复请求分配到合适的 Linter...诊断单个文件 命令行工具和 Node.js API 均可以诊断单个文件,命令行通过指定诊断文件,而 Node.js API 一般用于 VSCode 等 IDE 用于实时检测代码质量。

    1.4K20

    前端代码质量—怎样实现一个支持多语言、高扩展性的 Linter

    连 Microsoft 都通过 typescript-eslint 项目让 ESLint 可以支持 TypeScript 的分析。...TSLint TSLint 是早期的 TypeScript 的分析工具,后由兼容 ESLint 的 @typescript-eslint 项目所替代,TSLint 不再维护。...实例和配置则是由派生的 Linter 实现,比如 ECMAScriptLinter 就会基于 ESLinter 控制并准备 CLIEngine 实例和配置,再交由 ESLinter 提供的文件检查接口返回检查结果...引擎需要准备 Linter 的实例,并负责: 按照顺序调度 Linter 检查指定文件夹 将单个文件的诊断请求分配到合适的 Linter 执行并返回诊断结果 将单个文件的自动修复请求分配到合适的 Linter...诊断单个文件 命令行工具和 Node.js API 均可以诊断单个文件,命令行通过指定诊断文件,而 Node.js API 一般用于 VSCode 等 IDE 用于实时检测代码质量。

    1.2K10

    初探webpack之从零搭建Vue开发环境

    初探webpack之搭建Vue开发环境 平时我们可以用vue-cli很方便地搭建Vue的开发环境,vue-cli确实是个好东西,让我们不需要关心webpack等一些繁杂的配置,然后直接开始写业务代码,但这会造成我们过度依赖...搭建Vue基础环境 首先我们可以尝试一下对于.js中编写的Vue组件进行构建,即不考虑单文件组件.vue文件的加载,只是构建一个Vue对象的实例,为了保持演示的代码尽量完整,此时我们在src下建立一个main.js...preset-env是集成bebal一些可选方案,可以通过修改特定的参数来使用不同预设,babel-loader可以使得ES6+转ES5,babel默认只转换语法而不转换新的API,core-js可以让不支持...yarn add -D @typescript-eslint/eslint-plugin @typescript-eslint/parser @babel/plugin-syntax-typescript.../parser", plugins: ["@typescript-eslint"], extends: ["plugin:@typescript-eslint

    1.2K30

    初次在Vue项目使用TypeScript,需要做什么

    前言 总所周知,Vue新版本3.0 使用 TypeScript 开发,让本来就很火的 TypeScript 受到更多人的关注。...虽然 TypeScript 在近几年才火,但其实它诞生于2012年10月,正式版本发布于2013年6月,是由微软编写的自由和开源的编程语言。...GitHub 安装 npm install --save-dev eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin eslint-config-alloy...为vue实例添加属性/方法 当我们在使用this.route或一些原型上的方法时,typescript无法进行推断,在编译时会报属性route不存在的错误,需要为这些全局的属性或方法添加全局声明 对shims-vue.d.ts...建议及注意事项 改造过程 在接入 TypeScript 时,不必一次性将所有文件都改为ts语法,原有的语法也是可以正常运行的,最好就是单个修改 初次改造时出现一大串的错误是正常的,基本上都是类型错误,按照错误提示去翻译进行修改对应错误

    6.6K40

    Science专栏:卖肾去美国读博,70美元的「申请费」压死了多少骆驼

    Ali Khaledi博士是物理学家、神经学家,同时也是数据科学家和人工智能研究者,他于2014年来到美国攻读博士学位,在俄亥俄大学获得博士学位后,又继续在斯坦福大学医学院神经外科系做了博士后。...她想要申请免除申请费用(waivers),但八所学校中只有一所同意免除。 Gloria的故事也唤起了我十年前申请研究生时的艰苦记忆。...我松了一口气,但其实内心也十分害怕接受肾脏手术,这可能会导致我在未来几年内都需要接受医疗护理。 谢天谢地,一位非常慷慨的朋友帮我解决了这个两难的问题。...此外,免除申请费用的标准往往将国际学生排除在外,比如会要求提供美国公民身份或永久居留权证明。...优质教育资源的稀缺性注定了其高昂的价格,真正的「教育公平」可能要寄希望于AI技术,让GPT-4做导师,或许能实现真正的「高等教育」平民化。

    21530

    Redis主从复制原理

    (2)单节点的Redis不能保证高可用,当Redis因为某些原因意外宕机时,会导致缓存不可用 (3)CPU的利用率上,单台Redis实例只能利用单个核心,这单个核心在面临海量数据的存取和管理工作时压力会非常大...(3)当连接断开时,slave服务器会重新连接上master服务器,然后请求继续复制。...redis服务器的读写访问压力过大的问题,同时也可以给为数据备份及冗余提供一种解决方案; (5)使用主从复制可以为master服务器免除把数据写入磁盘的消耗,可以配置让master服务器不再将数据持久化到磁盘...,而是通过连接让一个配置的slave类型的Redis服务器及时将相关数据持久化到磁盘。...这时出现了一个崩溃,但Redis具有自动重启系统,重启了进程,因为关闭了持久化,节点重启后只有一个空的数据集。节点B和C从节点A进行复制,现在节点A是空的,所以节点B和C上的复制数据也会被删除。

    75740
    领券