Versions

no-dupe-keys

Disallow duplicate keys in object literals

Recommended

Using the recommended config from @eslint/js in a configuration file enables this rule

Multiple properties with the same key in object literals can cause unexpected behavior in your application.

const foo = {
    bar: "baz",
    bar: "qux"
};

Rule Details

This rule disallows duplicate keys in object literals.

Examples of incorrect code for this rule:

Open in Playground
/*eslint no-dupe-keys: "error"*/

const foo = {
    bar: "baz",
    bar: "qux"
};

const bar = {
    "bar": "baz",
    bar: "qux"
};

const baz = {
    0x1: "baz",
    1: "qux"
};

Examples of correct code for this rule:

Open in Playground
/*eslint no-dupe-keys: "error"*/

const foo = {
    bar: "baz",
    quxx: "qux"
};

const obj = {
    "__proto__": baz, // defines object's prototype
    ["__proto__"]: qux // defines a property named "__proto__"
};

Options

This rule has no options.

Handled by TypeScript

It is safe to disable this rule when using TypeScript because TypeScript's compiler enforces this check.

Version

This rule was introduced in ESLint v0.0.9.

Resources

Change Language