Ved*_*ede 12 javascript node.js typescript
我是打字稿新手,我尝试通过运行命令将打字稿文件转换为javascript文件tsc filename.ts。但它显示错误。
C:\Program Files (x86)\Nodist\bin\node_modules\typescript\lib\tsc.js:93
for (let i = startIndex ?? 0; i < array.length; i++) {
^
SyntaxError: Unexpected token ?
at Module._compile (internal/modules/cjs/loader.js:749:23)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:816:10)
at Module.load (internal/modules/cjs/loader.js:672:32)
at tryModuleLoad (internal/modules/cjs/loader.js:612:12)
at Function.Module._load (internal/modules/cjs/loader.js:604:3)
at Module.require (internal/modules/cjs/loader.js:711:19)
at require (internal/modules/cjs/helpers.js:14:16)
at Object.<anonymous> (C:\Program Files (x86)\Nodist\bin\node_modules\typescript\bin\tsc:2:1)
at Module._compile (internal/modules/cjs/loader.js:805:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:816:10)
Run Code Online (Sandbox Code Playgroud)
我尝试将节点安装到最新版本。
事实上,Veerendra是对的,TypeScript 现在需要节点 14.17 作为“最低运行时要求”。我刚刚所做的就是从我的系统(Ubuntu 22)中完全卸载nodejs, npm, typescript, ... ,然后使用nvm安装最新的 LTS 版本的 nodejs 。直接转到自述文件中的这一行以查看安装命令nvm。
您可以选择要安装的nvm任何版本。nodejs安装特定版本的nodejs也可以让您获得npm. 我选择安装v18.17.0,
$ nvm install v18.17.0
Run Code Online (Sandbox Code Playgroud)
然后像平常一样安装软件包npm,现在命令tsc可以正常工作了。
小智 6
TypeScript我在5.1.6 和 Node 12.x 版本中遇到了同样的问题。
由于这种组合,您会遇到这个问题。我将我的版本降级TypeScript到 4.9.5,它对我来说效果很好。
请检查下面的图片以供参考:
https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-1.html

尽管按照链接中的建议使用节点 v18,我也遇到了同样的问题 - https://devblogs.microsoft.com/typescript/announcing-typescript-5-1/#es2020-and-node-js-14-17- as-最低运行时间要求
我将 typescript 版本从 5.1 降级到 5 并且它有效。