Перейти до вмісту

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"
}
}
}
}