“tsc”命令显示“语法错误:意外的标记?”

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)

我尝试将节点安装到最新版本。

llu*_*lpu 8

事实上,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

更改日志的屏幕截图

  • Node 14 中添加了对“??”的支持,它比当前的 LTS 早了几个版本。解决方案是升级Node,而不是降级TS。 (3认同)

Apa*_*yan 2

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

我将 typescript 版本从 5.1 降级到 5 并且它有效。