怎么打造一个舒适的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

相关推荐
东风破_2 小时前
danci 项目(三):从 JSON 数据到 AI Coding,真实项目里的数据清洗、Prompt 和工程规范
前端·后端·node.js
东风破_3 小时前
danci 项目(一):从需求到架构,一个单词学习系统为什么会这样设计
前端·后端·node.js
蒲公英eric3 小时前
从客户端到服务端:DVWA DOM 型 XSS 模块完整漏洞分析教程
前端·web安全·ai·xss·dvwa·ai安全
单线程_013 小时前
从案例分析 Vue3 Tokenizer+Parser 源码三
前端·javascript·vue.js
小磊哥er4 小时前
深入解构Claude Code - 第 10 篇 · 高级能力
typescript·ai编程
顶点多余4 小时前
那些在算法中适合巩固的知识点---1
java·前端·算法
Setsuna_F_Seiei4 小时前
前端转型 Agent 开发 03 之 Agent Tools - 给 Agent 装上手脚
前端·agent·ai编程
jay神4 小时前
【计算机毕业设计】基于SpringBoot的程序教学辅助系统
java·前端·vue.js·spring boot·后端·毕业设计·课程设计
小磊哥er4 小时前
深入解构Claude Code - 第 9 篇 · 怎么给它加功能
typescript·ai编程
kyriewen7 小时前
我装了30多个Skill,给AI安排了8个岗位
前端·javascript·ai编程