コンテンツにスキップ

noUnnecessaryConditions

このコンテンツはまだ日本語訳がありません。

Disallow unnecessary type-based conditions that can be statically determined as redundant.

This rule detects if expressions inside conditions are statically inferrable and yield falsy or truthy values that don’t change during the life cycle of the program.

function head<T>(items: T[]) {
if (items) { // This check is unnecessary
return items[0].toUpperCase();
}
}
function foo(arg: 'bar' | 'baz') {
if (arg) { // This check is unnecessary
}
}
function bar(arg: string) {
return arg?.length; // ?. is unnecessary
}
function head<T>(items: T[] | null) {
if (items) { // This check is necessary
return items[0].toUpperCase();
}
}
function foo(arg: 'bar' | 'baz' | null) {
if (arg) { // This check is necessary
}
}
function bar(arg: string | undefined) {
return arg?.length; // ?. is necessary
}
biome.json
{
"linter": {
"rules": {
"nursery": {
"noUnnecessaryConditions": "error"
}
}
}
}