Home > Software design >  Conditional Types. Parsing error from TypeScript eslint
Conditional Types. Parsing error from TypeScript eslint

Time:08-04

I get an eslint error when I try the following implementation in typescript.

type CamelToSnakeCase<S extends string> =
  S extends `${infer T}${infer U}` ?
  `${T extends Capitalize<T> ? "_" : ""}${Lowercase<T>}${CamelToSnakeCase<U>}` : S

I get the following error on vscode

Parsing error: Type expected.eslint

my .eslint.js

   module.exports = {
      root: true,
      env: {
        es6: true,
        node: true,
      },
      extends: [
        "eslint:recommended",
        "plugin:import/errors",
        "plugin:import/warnings",
        "plugin:import/typescript",
        "google",
        "plugin:@typescript-eslint/recommended",
      ],
      parser: "@typescript-eslint/parser",
      parserOptions: {
        project: [
          "tsconfig.json",
          "tsconfig.dev.json",
        ],
        sourceType: "module",
      },
      ignorePatterns: [
        "/lib/**/*", // Ignore built files.
      ],
      plugins: [
        "@typescript-eslint",
        "import",
      ],
      rules: {
        "quotes": ["error", "double"],
        "import/no-unresolved": 0,
      },
    };

This may be a rudimentary question, but please answer.

CodePudding user response:

Template literal are supported from Typescript 4.1 onwards.

You'll need to update your TS version !

  • Related