Functions Rules

Function call spacing, declaration style, naming conventions, and parameters

6 rules6 auto-isFixable

function-call-spacing

auto-isFixable

No space between function name and opening parenthesis

Why: Standard JavaScript convention
Correct
javascript
myFunction(arg);console.log("message");
Incorrect
javascript
myFunction (arg);console.log ("message");
eslint.config.js
javascript
"code-style/function-call-spacing": "error"

function-declaration-style

auto-isFixable

Convert function declarations to const arrow function expressions

Why: Auto-fix companion to ESLint's func-style rule
Correct
javascript
export const getToken = (): string | null => getCookie(tokenKey);
Incorrect
javascript
export function getToken(): string | null {    return getCookie(tokenKey);}
eslint.config.js
javascript
"code-style/function-declaration-style": "error"

function-naming-convention

auto-isFixable

Functions use camelCase, start with verb, end with Handler suffix

Why: Function names should describe actions clearly
Correct
javascript
function getUserDataHandler() {}function clickHandler() {}
Incorrect
javascript
function handleClick() {}function getUserData() {}
eslint.config.js
javascript
"code-style/function-naming-convention": "error"

function-object-destructure

auto-isFixable

Non-component functions: use typed params, destructure in body

Why: Keeping function signatures clean and short improves readability
Correct
javascript
const createUserHandler = async (data: CreateUserParamsInterface) => {    const { age, email, name } = data;};
Incorrect
javascript
const createUserHandler = async ({ age, email, name }: CreateUserParamsInterface) => {};
eslint.config.js
javascript
"code-style/function-object-destructure": "error"

function-params-per-line

auto-isFixable

When multiline, each parameter on its own line

Why: Mixed formatting is confusing; one per line is scannable
Correct
javascript
function createUser(    name,    email,    password,) {}
Incorrect
javascript
function createUser(name,    email, password,    role) {}
eslint.config.js
javascript
"code-style/function-params-per-line": "error"

no-empty-lines-in-function-params

auto-isFixable

No empty lines between parameters

Why: Empty lines in parameter lists waste space
Correct
javascript
function createUser(    name,    email,    role,) {}
Incorrect
javascript
function createUser(    name,     email,     role,) {}
eslint.config.js
javascript
"code-style/no-empty-lines-in-function-params": "error"