怎么打造一个舒适的nodejs开发环境

目标:需要根据node的版本,提供代码的提示和报错。

使用场景:编写nodejs代码,直接运行,不经过ts编译。需要编辑和运行时一致,在编辑时提供提示和报错。

1、使用ts

可以在项目中配置 jsconfig.json/tsconfig.json, 结合 @types/node 和 @tsconfig.json。

配置之后,编写代码时可以做到api特性的提示和报错。

但是对语法特性,是没法根据ES的版本进行报错的,比如下面这个代码:

js 复制代码
let x1 = 5;
x1 &&= 10;

&&=是es2021的特性,在node14中直接运行会报错。需要先进行tsc编译。

如果想直接运行js而不进行ts编译,希望编辑器给出报错提示。这个时候只配置ts就不够了,需要结合eslint。

2、使用eslint

eslint中可以配置:

js 复制代码
languageOptions: {
      ecmaVersion: 6,
      sourceType: "script"
}

一些疑问

问题1

配置tsconfig后,会根据lib来检查代码中使用的es的api。但是没法对语法特性进行检查,ts会对语法特性进行转义。问题:

  1. ts是怎么识别最新的语法特性的,并转译的
  2. ts为什么不能对语法特性进行报错

猜想1:与server服务的ts版本有关,ts版本决定了识别的语法特性。

确实有关。需要考虑 ts版本对es语法特性的支持,哪里可以看到具体的对应关系?

也可以去 typescript 官网看版本日志:www.typescriptlang.org/docs/handbo...

不同版本的ts支持的特性不一样,验证:可以去 ts在线网站去验证:www.typescriptlang.org/play/?ts=3....

举个例子:ts3.9.7版本不支持 a||=4, 但是 4.0.5 版本支持。

那如果我要禁用高版本的语法特性,我就只能使用低版本的ts吗?有没有个选项可以配置?貌似没有,只能配合eslint

相关推荐
清秋14 小时前
全网最全 ECMAScript 攻略( 更新至 ES2026)
前端·javascript·编程语言
Cao_Ron15 小时前
用 SVG image symbol 画 ECharts graph 圆形节点
前端
hxy060115 小时前
React-Call让你的React组件像异步函数一样调用
前端·react.js
Hilaku15 小时前
为什么 AI 写前端时,总是优先选择 React,而不是 Vue?
前端·javascript·程序员
京东云开发者15 小时前
GPT-5.6、ChatGPT Work 与 Codex 更新食用指南
前端
Cao_Ron15 小时前
用 ECharts graph 画出卡片式矩形节点
前端
skiyee15 小时前
换个底座的 Wot Starter 居然让 AI 更懂项目!
前端·ai编程
anyup15 小时前
这一套绝了!AI 大模型写故事,星云 SDK 驱动 3D 数字人实时演绎
前端·人工智能·aigc
耀耀切克闹灬16 小时前
短链跳转
前端
孟陬16 小时前
高质量全方位的 AI 工具 sse-stuntman — Mock SSE 接口
前端·node.js·openai