Typescript crashes on ES11 syntax

Viewed 521

What is the reason typescript is throwing error when I try to use ES11 nullish coalescing operator?

Exapmle:

const a = undefined;
const b = a ?? 'test';

is resulting in:

dev_project-shared_server | Using ts-node version 8.10.2, typescript version 3.9.5
dev_project-shared_server | /usr/src/app/services/server/src/index.ts:21
dev_project-shared_server |     const b = a ?? 'test';
dev_project-shared_server |                  ^
dev_project-shared_server | 
dev_project-shared_server | SyntaxError: Unexpected token '?'
dev_project-shared_server |     at Object.compileFunction (vm.js:344:18)
dev_project-shared_server |     at wrapSafe (internal/modules/cjs/loader.js:1048:15)
dev_project-shared_server |     at Module._compile (internal/modules/cjs/loader.js:1082:27)
dev_project-shared_server |     at Module._compile (/usr/src/app/node_modules/source-map-support/source-map-support.js:547:25)
dev_project-shared_server |     at Module.m._compile (/tmp/ts-node-dev-hook-7547668788214215.js:57:25)
dev_project-shared_server |     at Module._extensions..js (internal/modules/cjs/loader.js:1138:10)
dev_project-shared_server |     at require.extensions.<computed> (/tmp/ts-node-dev-hook-7547668788214215.js:59:14)
dev_project-shared_server |     at Object.nodeDevHook [as .ts] (/usr/src/app/node_modules/ts-node-dev/lib/hook.js:61:7)
dev_project-shared_server |     at Module.load (internal/modules/cjs/loader.js:982:32)
dev_project-shared_server |     at Function.Module._load (internal/modules/cjs/loader.js:875:14)
dev_project-shared_server | [ERROR] 06:58:29 SyntaxError: Unexpected token '?'

my tsconfig.json:

{
  "compilerOptions": {
    "target": "ESNext",
    "esModuleInterop": true,
    "allowJs": true,
    "skipLibCheck": true,
    "moduleResolution": "node",
    "module": "CommonJS",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "strict": true,
    "noImplicitAny": true,
    "strictNullChecks": true,
    "strictFunctionTypes": true,
    "strictPropertyInitialization": false,
    "noImplicitThis": true,
    "alwaysStrict": true,
    "forceConsistentCasingInFileNames": true,
    "removeComments": true,
    "sourceMap": true,
    "declaration": true,
    "outDir": "./dist",
    "rootDir": "./src"
  },
  "exclude": ["node_modules", "dist"],
  "include": ["**/*.ts"]
}

1 Answers
Related