typescript - Typescript 在 ES11 语法上崩溃
问题描述
当我尝试使用 ES11 空值合并运算符时,打字稿抛出错误的原因是什么?
示例:
const a = undefined;
const b = a ?? 'test';
导致:
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 '?'
我的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"]
}
解决方案
你的节点是什么版本?nodejs v14 支持 nullish 合并运算符 (??): https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing_operator
推荐阅读
- .net - 通过 Angular 8 客户端对用户进行身份验证时出现未知错误
- regex - 从数据集中提取数据
- swift - SwiftUI - 使用“ObservableObject”和@EnvironmentObject 有条件地显示视图
- r - 如何按组获得最高数量的列
- python - 整数下限到最接近的 10,000
- php - 如何根据列中的值显示按钮
- python - 有没有办法在使用浮点数的同时按键值对字典进行排序?
- node.js - NodeJS Async Await 将数据插入数据库和 Google API
- jquery - Jquery mmenu 从 bootstrap 4 布局中退出
- java - 如何在 selenium 测试框架中生成没有主类的可运行 jar 文件?