useAsConstAssertion
Diagnostic Category: lint/style/useAsConstAssertion
Since: v1.3.0
Sources:
- Same as: 
@typescript-eslint/prefer-as-const 
Description
Section titled DescriptionEnforce the use of as const over literal type and type annotation.
In TypeScript, there are three common ways to specify that a value is of a specific type such as 2 and not a general type such as number:
as const: telling TypeScript to infer the literal type automaticallyas <literal>: explicitly telling the literal type to TypeScript- type annotation: explicitly telling the literal type to TypeScript when declare variables
 
The rule suggests to use as const when you’re using as with a literal type or type annotation, since as const is simpler and doesn’t require retyping the value.
Examples
Section titled ExamplesInvalid
Section titled Invalidlet bar: 2 = 2;code-block.ts:1:10 lint/style/useAsConstAssertion  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  ✖ Use as const instead of type annotation.
  
  > 1 │ let bar: 2 = 2;
      │          ^
    2 │ 
  
  ℹ as const doesn’t require any update when the value is changed.
  
  ℹ Safe fix: Replace with as const.
  
    1   │ - let·bar:·2·=·2;
      1 │ + let·bar·=·2·as·const;
    2 2 │   
  
let foo = { bar: 'baz' as 'baz' };code-block.ts:1:27 lint/style/useAsConstAssertion  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  ✖ Use as const instead of as with a literal type.
  
  > 1 │ let foo = { bar: ‘baz’ as ‘baz’ };
      │                           ^^^^^
    2 │ 
  
  ℹ as const doesn’t require any update when the asserted value is changed.
  
  ℹ Safe fix: Replace with as const.
  
    1   │ - let·foo·=·{·bar:·‘baz’·as·‘baz’·};
      1 │ + let·foo·=·{·bar:·‘baz’·as·const·};
    2 2 │   
  
Valid
Section titled Validlet foo = 'bar';let foo = 'bar' as const;let foo: 'bar' = 'bar' as const;let bar = 'bar' as string;let foo = { bar: 'baz' };How to configure
Section titled How to configure{  "linter": {    "rules": {      "style": {        "useAsConstAssertion": "error"      }    }  }}