title: Why is my switch-exhaustiveness-check lint rule not working?
body: <p>The following code is triggering a standard <code>default-case</code> lint error, but the <code>@typescript-eslint/switch-exhaustiveness-check</code> is not being triggered. Any idea what could be causing this? Other @typescript-eslint rules work fine.</p>
  <pre><code>type Day = 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday';
  
  const day = 'Monday' as Day;
  let result = 0;
  
  switch (day) {
    case 'Monday': {
      result = 1;
      break;
    }
  }
  </code></pre>
  <p>Here is my .eslintrc.js</p>
  <pre class="lang-js prettyprint-override"><code>module.exports = {
    env: {
      browser: true,
      es2021: true,
    },
    extends: [
      'plugin:react/recommended',
      'airbnb',
      'plugin:@typescript-eslint/recommended',
      'plugin:prettier/recommended',
    ],
    ignorePatterns: ['.eslintrc.js'],
    parser: '@typescript-eslint/parser',
    parserOptions: {
      ecmaFeatures: {
        jsx: true,
      },
      ecmaVersion: 'latest',
      sourceType: 'module',
      project: ['./tsconfig.json'],
    },
    plugins: ['react', '@typescript-eslint', 'react-hooks'],
    // Fix error &quot;Unable to resolve path to module&quot; for tsx files
    settings: {
      'import/resolver': {
        typescript: {},
      },
    },
    rules: {
      // Fix &quot;React used before defined&quot; error
      'no-use-before-define': 'off',
      '@typescript-eslint/no-use-before-define': ['error'],
  
      // Allow jsx
      'react/jsx-filename-extension': ['warn', { extensions: ['.tsx'] }],
  
      // Fix error &quot;Missing file extension tsx&quot;
      'import/extensions': [
        'error',
        'ignorePackages',
        {
          ts: 'never',
          tsx: 'never',
        },
      ],
  
      // Fix error &quot;‘Enum’ is already declared in the upper scope&quot;
      'no-shadow': 'off',
      '@typescript-eslint/no-shadow': ['error'],
  
      // Add rules for react hooks
      'react-hooks/rules-of-hooks': 'error',
      'react-hooks/exhaustive-deps': 'warn',
  
      // Use 120 character windows
      'max-len': [
        'error',
        {
          code: 120,
          ignoreUrls: true,
          ignoreStrings: true,
          ignoreTemplateLiterals: true,
          ignoreRegExpLiterals: true,
        },
      ],
  
      // Stop using default export
      'import/no-default-export': 'error',
      'import/prefer-default-export': 'off',
  
      // Since we use interfaces often in DDD and sometimes an implemented function uses this and sometimes not, it makes
      // this rule impractical.
      'class-methods-use-this': 'off',
  
      // Require accessibility modifiers on everything except public constructors
      '@typescript-eslint/explicit-member-accessibility': ['error', { overrides: { constructors: 'no-public' } }],
  
      // We use these many times in domain objects, so it makes sense to ignore them.
      '@typescript-eslint/no-empty-interface': 'off',
  
      // Allow test dependencies to appear in devDependencies
      'import/no-extraneous-dependencies': ['error', { devDependencies: ['**/*.test.ts', '**/*.test.tsx'] }],
  
      // Place default props inside class field
      'react/static-property-placement': ['error', 'static public field'],
  
      '@typescript-eslint/switch-exhaustiveness-check': ['error'],
    },
  };
  </code></pre>