Skip to content

builtinCoercions

Reports functions that wrap native coercion functions like String, Number, BigInt, Boolean, or Symbol.

✅ This rule is included in the ts stylistic and stylisticStrict presets.

JavaScript’s built-in coercion functions Boolean, BigInt, Number, String, and Symbol can be passed directly where a function is expected. Wrapping them in another function adds unnecessary indirection and reduces code clarity.

This rule also detects identity functions used as callbacks to array filtering methods like .filter(), .some(), .every(), .find(), .findIndex(), .findLast(), and .findLastIndex(). These identity functions are equivalent to passing Boolean directly, which filters out falsy values.

const
const toString: (value: any) => string
toString
= (
value: any
value
) =>
var String: StringConstructor
(value?: any) => string

Allows manipulation and formatting of text strings and determination and location of substrings within strings.

String
(
value: any
value
);
const
const toNumber: (value: any) => number
toNumber
= function (
value: any
value
) {
return
var Number: NumberConstructor
(value?: any) => number

An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.

Number
(
value: any
value
);
};
const
const truthy: unknown[]
truthy
=
const values: unknown[]
values
.
Array<unknown>.filter(predicate: (value: unknown, index: number, array: unknown[]) => unknown, thisArg?: any): unknown[] (+1 overload)

Returns the elements of an array that meet the condition specified in a callback function.

@parampredicate A function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array.

@paramthisArg An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value.

filter
((
value: unknown
value
) =>
value: unknown
value
);
const
const hasTruthy: boolean
hasTruthy
=
const values: unknown[]
values
.
Array<unknown>.some(predicate: (value: unknown, index: number, array: unknown[]) => unknown, thisArg?: any): boolean

Determines whether the specified callback function returns true for any element of an array.

@parampredicate A function that accepts up to three arguments. The some method calls the predicate function for each element in the array until the predicate returns a value which is coercible to the Boolean value true, or until the end of the array.

@paramthisArg An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value.

some
((
item: unknown
item
) =>
item: unknown
item
);

This rule is not configurable.

If you prefer the explicit function wrapper style for consistency with other callbacks that do transform their arguments, you may disable this rule. Some codebases may prefer the visual consistency of always using arrow functions in callbacks, even when a direct function reference would work.

Made with ❤️‍🔥 around the world by the Flint team and contributors.