Typescript tsconfig.json verbatimModuleSyntax

TypeScript contains the following properties:

  • isolatedModules
  • preserveValueImports
  • importsNotUsedAsValues

verbatimModuleSyntax is a new configuration option introduced in TypeScript 5.0 to address the Import Epsilon issue.

This can be configured in two ways:

  • Via command line: --verbatimModuleSyntax
  • By configuring compilerOptions with the verbatimModuleSyntax property in tsconfig.json.
{
  "compilerOptions": {
    "verbatimModuleSyntax": "true"
  }
}

If your application or its dependency modules throw an error for the following use cases:

  • TypeScript version is the latest or 5.5 version.
  • TypeScript tsconfig.json contains the following property:
"importsNotUsedAsValues": "error"

For example, let’s say you’re working on a Vue.js application with TypeScript. If you encounter this error:

First, search the entire application for the property importsNotUsedAsValues but did not find it. Then, ensure that Vue.js packages are updated to the latest version.

If you encounter the same error again after updating all Vue.js libraries to the latest version, let’s see how to fix this error.

Fix for “Flag ‘importsNotUsedAsValues’ is deprecated and will stop functioning in TypeScript 5.5.”?

There are multiple ways to fix the importsNotUsedAsValues deprecated error.

  • Add an ignoreDeprecations property in tsconfig.json

add ignoreDeprecations property with 5.0 in tsconfig.json.

{
  "compilerOptions": {
    "ignoreDeprecations": "5.0"
  }
}
  • Alternatively, use the verbatimModuleSyntax syntax.

Update verbatimModuleSyntax to true in tsconfig.json.

{
  "compilerOptions": {
    "verbatimModuleSyntax": true
  }
}