假设有代码注释为:
xxxxx // TODO
xxxxx // HACK
xxxxx // XXX
xxxxx // FIXME
xxxxx // REVIEW
TODO: 表明这段代码还未完全写完,有待编写
HACK: 有 2 层含义,分别为
- 表明这段代码当前走了 一个捷径,需要我们根据实际需求去调整这段代码
- 表明这段代码有可能会有更好的解决方式
**XXX:**表明这段代码有问题,应该尽快修复
FIXME: 表明这段代码有问题,但问题严重性并不是特别大,也会尽快修复
REVIEW: 表明这段代码需要评审
假设有段代码虽然 TypeScript 检测到错误,但是我们依然决定要这样执行,那么我们可以添加代码注释,让 TypeScript 忽略掉这段代码检查。
将 //@ts-ignore 添加到代码 xxxxx 上面一行,可以让 TS 忽略对 这一行代码的检查,即使下一行代码有错误,那么也不会显示错误消息。
//@ts-ignore
xxxxxx
禁止在文件的下一行显示 @ts-check 错误,预计至少存在一个错误。
//@ts-expect-error
xxxxxx
将 //@ts-nocheck 添加到代码最顶部,则忽略全文检查
//@ts-nocheck
将 //@ts-check 添加到代码最顶部,则全文必须检查
//@ts-check
使用建议:
- 建议全局开启 TS 严格检查模式
- 只有在万不得已的情况下,才应该使用 //@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-disable-line
忽略本行中的 no-console 这一项检查:
/* eslint-disable-line no-console */