Skip to main content
interface Deno.CompilerOptions

UNSTABLE: new API, yet to be vetted.

A specific subset TypeScript compiler options that can be supported by the Deno TypeScript compiler.

Properties

optional
allowJs: boolean

Allow JavaScript files to be compiled. Defaults to true.

optional
allowSyntheticDefaultImports: boolean

Allow default imports from modules with no default export. This does not affect code emit, just typechecking. Defaults to false.

optional
allowUmdGlobalAccess: boolean

Allow accessing UMD globals from modules. Defaults to false.

optional
allowUnreachableCode: boolean

Do not report errors on unreachable code. Defaults to false.

optional
allowUnusedLabels: boolean

Do not report errors on unused labels. Defaults to false

optional
alwaysStrict: boolean

Parse in strict mode and emit "use strict" for each source file. Defaults to true.

optional
baseUrl: string

Base directory to resolve non-relative module names. Defaults to undefined.

optional
charset: string

The character set of the input files. Defaults to "utf8".

optional
checkJs: boolean

Report errors in .js files. Use in conjunction with allowJs. Defaults to false.

optional
declaration: boolean

Generates corresponding .d.ts file. Defaults to false.

optional
declarationDir: string

Output directory for generated declaration files.

optional
declarationMap: boolean

Generates a source map for each corresponding .d.ts file. Defaults to false.

optional
downlevelIteration: boolean

Provide full support for iterables in for..of, spread and destructuring when targeting ES5 or ES3. Defaults to false.

optional
emitDeclarationOnly: boolean

Only emit .d.ts declaration files. Defaults to false.

optional
emitDecoratorMetadata: boolean

Emit design-type metadata for decorated declarations in source. See issue microsoft/TypeScript#2577 for details. Defaults to false.

optional
esModuleInterop: boolean

Emit __importStar and __importDefault helpers for runtime babel ecosystem compatibility and enable allowSyntheticDefaultImports for type system compatibility. Defaults to true.

optional
experimentalDecorators: boolean

Enables experimental support for ES decorators. Defaults to true.

optional
importHelpers: boolean

Import emit helpers (e.g. __extends, __rest, etc..) from tslib.

optional
importsNotUsedAsValues: "remove" | "preserve" | "error"

This flag controls how import works, there are 3 different options:

  • remove: The default behavior of dropping import statements which only reference types.
  • preserve: Preserves all import statements whose values or types are never used. This can cause imports/side-effects to be preserved.
  • error: This preserves all imports (the same as the preserve option), but will error when a value import is only used as a type. This might be useful if you want to ensure no values are being accidentally imported, but still make side-effect imports explicit.

This flag works because you can use import type to explicitly create an import statement which should never be emitted into JavaScript.

optional
inlineSourceMap: boolean

Emit a single file with source maps instead of having a separate file. Defaults to false.

optional
inlineSources: boolean

Emit the source alongside the source maps within a single file; requires inlineSourceMap or sourceMap to be set. Defaults to false.

optional
jsx:
| "react"
| "preserve"
| "react-native"
| "react-jsx"
| "react-jsx-dev"

Support JSX in .tsx files: "react", "preserve", "react-native", "react-jsx", "react-jsxdev". Defaults to "react"`.

optional
jsxFactory: string

Specify the JSX factory function to use when targeting react JSX emit, e.g. React.createElement or h. Defaults to React.createElement.

optional
jsxFragmentFactory: string

Specify the JSX fragment factory function to use when targeting react JSX emit, e.g. Fragment. Defaults to React.Fragment.

optional
jsxImportSource: string

Declares the module specifier to be used for importing the jsx and jsxs factory functions when using jsx as "react-jsx" or "react-jsxdev". Defaults to "react".

optional
keyofStringsOnly: string

Resolve keyof to string valued property names only (no numbers or symbols). Defaults to false.

optional
lib: string[]

List of library files to be included in the compilation. If omitted, then the Deno main runtime libs are used.

optional
locale: string

The locale to use to show error messages.

optional
mapRoot: string

Specifies the location where debugger should locate map files instead of generated locations. Use this flag if the .map files will be located at run-time in a different location than the .js files. The location specified will be embedded in the source map to direct the debugger where the map files will be located. Defaults to undefined.

optional
module:
| "none"
| "commonjs"
| "amd"
| "system"
| "umd"
| "es6"
| "es2015"
| "es2020"
| "esnext"

Specify the module format for the emitted code. Defaults to "esnext".

optional
noEmitHelpers: boolean

Do not generate custom helper functions like __extends in compiled output. Defaults to false.

optional
noFallthroughCasesInSwitch: boolean

Report errors for fallthrough cases in switch statement. Defaults to false.

optional
noImplicitAny: boolean

Raise error on expressions and declarations with an implied any type. Defaults to true.

optional
noImplicitReturns: boolean

Report an error when not all code paths in function return a value. Defaults to false.

optional
noImplicitThis: boolean

Raise error on this expressions with an implied any type. Defaults to true.

optional
noImplicitUseStrict: boolean

Do not emit "use strict" directives in module output. Defaults to false.

optional
noLib: boolean

Do not include the default library file (lib.d.ts). Defaults to false.

optional
noResolve: boolean

Do not add triple-slash references or module import targets to the list of compiled files. Defaults to false.

optional
noStrictGenericChecks: boolean

Disable strict checking of generic signatures in function types. Defaults to false.

optional
noUncheckedIndexedAccess: boolean

Include 'undefined' in index signature results. Defaults to false.

optional
noUnusedLocals: boolean

Report errors on unused locals. Defaults to false.

optional
noUnusedParameters: boolean

Report errors on unused parameters. Defaults to false.

optional
paths: Record<string, string[]>

List of path mapping entries for module names to locations relative to the baseUrl. Defaults to undefined.

optional
preserveConstEnums: boolean

Do not erase const enum declarations in generated code. Defaults to false.

optional
removeComments: boolean

Remove all comments except copy-right header comments beginning with /*!. Defaults to true.

optional
rootDir: string

Specifies the root directory of input files. Only use to control the output directory structure with outDir. Defaults to undefined.

optional
rootDirs: string[]

List of root folders whose combined content represent the structure of the project at runtime. Defaults to undefined.

optional
sourceMap: boolean

Generates corresponding .map file. Defaults to false.

optional
sourceRoot: string

Specifies the location where debugger should locate TypeScript files instead of source locations. Use this flag if the sources will be located at run-time in a different location than that at design-time. The location specified will be embedded in the sourceMap to direct the debugger where the source files will be located. Defaults to undefined.

optional
skipLibCheck: boolean

Skip type checking of all declaration files (*.d.ts).

optional
strict: boolean

Enable all strict type checking options. Enabling strict enables noImplicitAny, noImplicitThis, alwaysStrict, strictBindCallApply, strictNullChecks, strictFunctionTypes and strictPropertyInitialization. Defaults to true.

optional
strictBindCallApply: boolean

Enable stricter checking of the bind, call, and apply methods on functions. Defaults to true.

optional
strictFunctionTypes: boolean

Disable bivariant parameter checking for function types. Defaults to true.

optional
strictPropertyInitialization: boolean

Ensure non-undefined class properties are initialized in the constructor. This option requires strictNullChecks be enabled in order to take effect. Defaults to true.

optional
strictNullChecks: boolean

In strict null checking mode, the null and undefined values are not in the domain of every type and are only assignable to themselves and any (the one exception being that undefined is also assignable to void).

optional
suppressExcessPropertyErrors: boolean

Suppress excess property checks for object literals. Defaults to false.

optional
suppressImplicitAnyIndexErrors: boolean

Suppress noImplicitAny errors for indexing objects lacking index signatures.

optional
target:
| "es3"
| "es5"
| "es6"
| "es2015"
| "es2016"
| "es2017"
| "es2018"
| "es2019"
| "es2020"
| "esnext"

Specify ECMAScript target version. Defaults to esnext.

optional
types: string[]

List of names of type definitions to include when type checking. Defaults to undefined.

The type definitions are resolved according to the normal Deno resolution irrespective of if sources are provided on the call. In addition, unlike passing the --config option on startup, there is no base to resolve relative specifiers, so the specifiers here have to be fully qualified URLs or paths. For example:

Deno.emit("./a.ts", {
  compilerOptions: {
    types: [
      "https://deno.land/x/pkg/types.d.ts",
      "/Users/me/pkg/types.d.ts",
    ]
  }
});
optional
useDefineForClassFields: boolean

Emit class fields with ECMAScript-standard semantics. Defaults to false.