Linter
Deno 附带了 JavaScript 和 TypeScript 的内置 linter。
注意:linter 是一个新功能,仍然不稳定,因此需要 --unstable 选项
# 检查当前目录树内所有 JS/TS 文件
deno lint --unstable
# 检查特定文件
deno lint --unstable myfile1.ts myfile2.ts
可用规则
ban-ts-commentban-untagged-ignoreconstructor-superfor-directiongetter-returnno-array-constructorno-async-promise-executorno-case-declarationsno-class-assignno-compare-neg-zerono-cond-assignno-debuggerno-delete-varno-dupe-argsno-dupe-keysno-duplicate-caseno-empty-character-classno-empty-interfaceno-empty-patternno-emptyno-ex-assignno-explicit-anyno-func-assignno-misused-newno-namespaceno-new-symbolno-obj-callno-octalno-prototype-builtinsno-regex-spacesno-setter-returnno-this-aliasno-this-before-superno-unsafe-finallyno-unsafe-negationno-withprefer-as-constprefer-namespace-keywordrequire-yieldtriple-slash-referenceuse-isnanvalid-typeof
忽略指令
文件
要忽略整个文件,// deno-lint-ignore-file 指令应该置于文件顶部:
// deno-lint-ignore-file
function foo(): any {
// ...
}
必须在第一个语句或声明之前放置忽略指令:
// Copyright 2020 the Deno authors. All rights reserved. MIT license.
/**
* Some JS doc
**/
// deno-lint-ignore-file
import { bar } from "./bar.js";
function foo(): any {
// ...
}
诊断 (Diagnostics)
要忽略某些诊断,// deno-lint-ignore <codes ...> 指令应该置于违规行之前。必须指定要忽略的规则名称:
// deno-lint-ignore no-explicit-any
function foo(): any {
// ...
}
// deno-lint-ignore no-explicit-any explicit-function-return-type
function bar(a: any) {
// ...
}
为了与 ESLint 兼容,deno lint 也支持 // eslint-ignore-next-line 指令。像 // deno-lint-ignore 一样,这也需要指定忽略的规则名称:
// eslint-ignore-next-line no-empty
while (true) {}
// eslint-ignore-next-line @typescript-eslint/no-explicit-any
function bar(a: any) {
// ...
}