Skip to main content

Flowlint Comments

You can use flowlint comments to specify more granular lint settings within a file. These comments come in three froms:

In all forms, whitespace and asterisks between words are ignored, allowing for flexible formatting.

flowlint

The basic flowlint comment takes a comma-delimited list of rule:severity pairs and applies those settings for the rest of the source file until overridden. This has three primary purposes: applying settings over a block, applying settings over a file, and applying settings over part of a line.

settings over a block of code: A pair of flowlint comments can be used to apply a certain setting over a block of code. For example, to disable the untyped-type-import lint over a block of type imports would look like this:

import type {
// flowlint untyped-type-import:off
Foo,
Bar,
Baz,
// flowlint untyped-type-import:error
} from './untyped.js';

settings over a file: A flowlint comment doesn't have to have a matching comment to form a block. An unmatched comment simply applies its settings to the rest of the file. You could use this, for example, to suppress all sketchy-null-check lints in a particular file:

// flowlint sketchy-null:off
...

settings over part of a line: The settings applied by flowlint start and end right at the comment itself. This means that you can do things like

function foo(a: ?boolean, b: ?boolean) {
if (/* flowlint sketchy-null-bool:off */a/* flowlint sketchy-null-bool:warn */ && b) {
...
} else {
...
}
}

if you want control at an even finer level than you get from the line-based comments.

flowlint-line

A flowlint-line comment works similarly to a flowlint comment, except it only applies its settings to the current line instead of applying them for the rest of the file. The primary use for flowlint-line comments is to suppress a lint on a particular line:

function foo(x: ?boolean) {
if (x) { // flowlint-line sketchy-null-bool:off
...
} else {
...
}
}

flowlint-next-line

flowlint-next-line works the same as flowlint-line, except it applies its settings to the next line instead of the current line:

function foo(x: ?boolean) {
// flowlint-next-line sketchy-null-bool:off
if (x) {
...
} else {
...
}
}