diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2020-06-12 15:31:04 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-12 15:31:04 +0200 |
commit | c073f552d9ed18acab02080871c2b70b4951156e (patch) | |
tree | a0462714dda4727e54872701b811ab632d6d0100 /docs/tools | |
parent | 81d09ad01c92a9547cdb388044b3b3ce8b077aca (diff) |
docs(lint): add entry in manual (#6258)
Diffstat (limited to 'docs/tools')
-rw-r--r-- | docs/tools/linter.md | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/docs/tools/linter.md b/docs/tools/linter.md new file mode 100644 index 000000000..96c9c1b4e --- /dev/null +++ b/docs/tools/linter.md @@ -0,0 +1,122 @@ +## Linter + +Deno ships with a built in code linter for JavaScript and TypeScript. + +**Note: linter is a new feature and still unstable thus it requires `--unstable` +flag** + +```shell +# lint all JS/TS files in the current directory and subdirectories +deno lint --unstable +# lint specific files +deno lint --unstable myfile1.ts myfile2.ts +``` + +### Available rules + +- `ban-ts-comment` +- `ban-untagged-ignore` +- `constructor-super` +- `for-direction` +- `getter-return` +- `no-array-constructor` +- `no-async-promise-executor` +- `no-case-declarations` +- `no-class-assign` +- `no-compare-neg-zero` +- `no-cond-assign` +- `no-debugger` +- `no-delete-var` +- `no-dupe-args` +- `no-dupe-keys` +- `no-duplicate-case` +- `no-empty-character-class` +- `no-empty-interface` +- `no-empty-pattern` +- `no-empty` +- `no-ex-assign` +- `no-explicit-any` +- `no-func-assign` +- `no-misused-new` +- `no-namespace` +- `no-new-symbol` +- `no-obj-call` +- `no-octal` +- `no-prototype-builtins` +- `no-regex-spaces` +- `no-setter-return` +- `no-this-alias` +- `no-this-before-super` +- `no-unsafe-finally` +- `no-unsafe-negation` +- `no-with` +- `prefer-as-const` +- `prefer-namespace-keyword` +- `require-yield` +- `triple-slash-reference` +- `use-isnan` +- `valid-typeof` + +### Ignore directives + +#### Files + +To ignore whole file `// deno-lint-ignore-file` directive should placed at the +top of the file. + +```ts +// deno-lint-ignore-file + +function foo(): any { + // ... +} +``` + +Ignore directive must be placed before first stament or declaration: + +```ts +// 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 + +To ignore certain diagnostic `// deno-lint-ignore <codes...>` directive should +be placed before offending line. Specifying ignored rule name is required. + +```ts +// deno-lint-ignore no-explicit-any +function foo(): any { + // ... +} + +// deno-lint-ignore no-explicit-any explicit-function-return-type +function bar(a: any) { + // ... +} +``` + +To provide some compatibility with ESLint `deno lint` also supports +`// eslint-ignore-next-line` directive. Just like in `// deno-lint-ignore` it's +required to specify ignored rule name is required. + +```ts +// eslint-ignore-next-line no-empty +while (true) {} + +// eslint-ignore-next-line @typescript-eslint/no-explicit-any +function bar(a: any) { + // ... +} +``` |