prefer-as-const
Enforce the use of
as constover literal type.
Extending "plugin:@typescript-eslint/recommended" in an ESLint configuration enables this rule.
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 automaticallyaswith 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.
module.exports = {
"rules": {
"@typescript-eslint/prefer-as-const": "error"
}
};
Try this rule in the playground ↗
Examples
- ❌ Incorrect
- ✅ Correct
let bar: 2 = 2;
let foo = <'bar'>'bar';
let foo = { bar: 'baz' as 'baz' };
Open in Playgroundlet foo = 'bar';
let foo = 'bar' as const;
let foo: 'bar' = 'bar' as const;
let bar = 'bar' as string;
let foo = <string>'bar';
let foo = { bar: 'baz' };
Open in PlaygroundOptions
This rule is not configurable.
When Not To Use It
If you don't care about which style of literals assertions is used in your code, then you will not need this rule.
However, keep in mind that inconsistent style can harm readability in a project. We recommend picking a single option for this rule that works best for your project.