Skip to content

Latest commit

 

History

History
135 lines (67 loc) · 2.73 KB

代码注释的一些特殊用法.md

File metadata and controls

135 lines (67 loc) · 2.73 KB

代码注释的一些特殊用法

用关键词表明代码某种状态

假设有代码注释为:

xxxxx  // TODO

xxxxx  // HACK

xxxxx  // XXX

xxxxx  // FIXME

xxxxx  // REVIEW

TODO: 表明这段代码还未完全写完,有待编写

HACK: 有 2 层含义,分别为

  1. 表明这段代码当前走了 一个捷径,需要我们根据实际需求去调整这段代码
  2. 表明这段代码有可能会有更好的解决方式

**XXX:**表明这段代码有问题,应该尽快修复

FIXME: 表明这段代码有问题,但问题严重性并不是特别大,也会尽快修复

REVIEW: 表明这段代码需要评审


让TypeScript忽略检查

假设有段代码虽然 TypeScript 检测到错误,但是我们依然决定要这样执行,那么我们可以添加代码注释,让 TypeScript 忽略掉这段代码检查。

将 //@ts-ignore 添加到代码 xxxxx 上面一行,可以让 TS 忽略对 这一行代码的检查,即使下一行代码有错误,那么也不会显示错误消息。

//@ts-ignore
xxxxxx

禁止在文件的下一行显示 @ts-check 错误,预计至少存在一个错误。

//@ts-expect-error
xxxxxx

将 //@ts-nocheck 添加到代码最顶部,则忽略全文检查

//@ts-nocheck

将 //@ts-check 添加到代码最顶部,则全文必须检查

//@ts-check

使用建议:

  1. 建议全局开启 TS 严格检查模式
  2. 只有在万不得已的情况下,才应该使用 //@ts-ignore

在声明 TS 全局对象类型时,使用 3 个斜杠的特殊注释可以引入第三方对象:

在 global.d.ts 中全局定义某些类型,假设我们需要引入第三方定义的对象,由于在声明文件中无法使用 import ,所以只能通过这种 3 斜杠注释的形式来引入。

第 1 种:引入 xxx 类型

/// <reference types="xxx" />

第 2 种:导入 xx.d.ts 文件

/// <reference path="xxx.d.ts" />

在日常的 ts 或 tsx 中,我们是使用不到这种注释类型的。我们想引入某个类直接 import 即可。


让ESLint忽略一些检查

忽略本行:

/* eslint-disable-line

让WebPack忽略一些检查

忽略因为动态引入而引发的警告:

- const { IFCLoader } = await import( '../files/jsm/loaders/IFCLoader.js');
+ const { IFCLoader } = await import( /* webpackIgnore: true */ '../files/jsm/loaders/IFCLoader.js');

像上述示例代码,如果不添加忽略检查的注释,则会收到警告:Critical dependency: the request of a dependency is an expression