Skip to main content

prefer-as-const

Enforce the use of as const over literal type.

🔧

Some problems reported by this rule are automatically fixable by the --fix ESLint command line option.

💡

Some problems reported by this rule are manually fixable by editor suggestions.

There are two common ways to tell TypeScript that a literal value should be interpreted as its literal type (e.g. 2) rather than general primitive type (e.g. number);

  • as const: telling TypeScript to infer the literal type automatically
  • as with the literal type: explicitly telling the literal type to TypeScript

as const is generally preferred, as it doesn't require re-typing the literal value. This rule reports when an as with an explicit literal type can be replaced with an as const.

.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/prefer-as-const": "error"
}
};
Try this rule in the playground ↗

Examples

let bar: 2 = 2;
let foo = <'bar'>'bar';
let foo = { bar: 'baz' as 'baz' };

Options

This rule is not configurable.

When Not To Use It

If you are using TypeScript < 3.4

Resources