You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

定义TypeScript函数时出现Unexpected token ':'语法错误求助

问题:直接用Node运行TypeScript文件出现语法错误

我正在学习Josh Goldberg所著的《Learning Typescript》,按照书中示例编写TypeScript函数定义代码:

//index.ts
let songLogger: (song: string) => void;

songLogger = (song) => {
    console.log(`${song}`);
}

songLogger("Heart of Glass");

直接用node运行index.ts时出现如下错误:

PS C:\Typescript> node index.ts
C:\Typescript\index.ts:1
let songLogger: (song: string) => void;
              ^

SyntaxError: Unexpected token ':'
    at internalCompileFunction (node:internal/vm:73:18)
    at wrapSafe (node:internal/modules/cjs/loader:1178:20)
    at Module._compile (node:internal/modules/cjs/loader:1220:27)
    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    at Module.load (node:internal/modules/cjs/loader:1119:32)
    at Module._load (node:internal/modules/cjs/loader:960:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:23:47

我找不到语法错误的原因,请问我哪里操作错了?


原因与解决方法

错误原因

Node.js仅支持执行标准JavaScript代码,无法识别TypeScript特有的语法(比如代码里的:类型注解)。直接用node命令运行.ts文件时,Node会将其当作JavaScript解析,而类型注解在JS中属于非法语法,因此抛出Unexpected token ':'错误。

解决方法

方法一:先编译再运行(官方标准流程)

  1. 全局安装TypeScript编译器:
    npm install -g typescript
    
  2. 编译TypeScript文件为JavaScript:
    tsc index.ts
    
    执行后会在同目录生成index.js文件(已移除类型注解的标准JS代码)。
  3. 运行编译后的JS文件:
    node index.js
    

方法二:用ts-node直接运行TypeScript

若想跳过编译步骤直接运行.ts文件,可使用ts-node工具:

  1. 全局安装ts-node:
    npm install -g ts-node
    
  2. 直接运行TypeScript文件:
    ts-node index.ts
    

内容的提问来源于stack exchange,提问作者JarochoEngineer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 18:43:20