ESLint 项目探讨原生支持 TypeScript 配置文件的可行性
随着 Node.js 22.6.0 版本的发布,原生支持 TypeScript 文件加载的能力(只要不包含枚举或命名空间)为前端工具链带来了新的可能性。ESLint 团队正在积极探讨如何利用这一特性来优化其配置文件加载机制。
目前,ESLint 通过 Jiti 工具来加载 eslint.config.ts 文件。Jiti 是一个运行时 TypeScript 编译器,能够在 Node.js 环境中即时编译和执行 TypeScript 代码。虽然这个方案行之有效,但随着 Node.js 原生能力的增强,团队开始考虑更轻量级的解决方案。
Node.js 22.6.0 引入的类型剥离(type stripping)功能标志着 JavaScript 运行时对 TypeScript 的原生支持迈出了重要一步。这一特性允许 Node.js 直接加载 .ts 文件,自动剥离类型注解,而无需额外的编译步骤。值得注意的是,这一功能目前对代码结构有一定限制——不支持包含枚举和命名空间的 TypeScript 代码。
技术实现上,可以通过检测 process.features.typescript 属性来判断当前 Node.js 版本是否支持这一特性。当值为 'strip' 时表示支持基础的类型剥离,而 'transform' 则表示支持更高级的实验性类型转换功能(通过 --experimental-transform-types 标志启用)。
ESLint 团队计划分阶段实施这一改进:
- 首先在支持版本中尝试原生加载机制
- 保留 Jiti 作为回退方案,确保向后兼容
- 考虑引入实验性标志(如 --unstable_native_nodejs_ts_config)来逐步验证这一功能
这一改进将带来多重优势:减少依赖项、提升加载速度、降低潜在冲突风险。同时,随着 Node.js 对 TypeScript 支持程度的不断提高,未来可能会完全移除对第三方编译器的依赖。
对于开发者而言,这一变化意味着更简洁的工具链配置和更接近原生开发体验。不过团队也提醒,在过渡期间仍需注意代码中是否使用了 Node.js 尚不支持的 TypeScript 特性,如枚举和命名空间等。
ESLint 团队将持续关注 Node.js 对 TypeScript 支持的发展,并适时调整实现策略,为开发者提供最优的代码质量检查体验。
kernelopenEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。C086
baihu-dataset异构数据集“白虎”正式开源——首批开放10w+条真实机器人动作数据,构建具身智能标准化训练基座。00
mindquantumMindQuantum is a general software library supporting the development of applications for quantum computation.Python057
PaddleOCR-VLPaddleOCR-VL 是一款顶尖且资源高效的文档解析专用模型。其核心组件为 PaddleOCR-VL-0.9B,这是一款精简却功能强大的视觉语言模型(VLM)。该模型融合了 NaViT 风格的动态分辨率视觉编码器与 ERNIE-4.5-0.3B 语言模型,可实现精准的元素识别。Python00
GLM-4.7GLM-4.7上线并开源。新版本面向Coding场景强化了编码能力、长程任务规划与工具协同,并在多项主流公开基准测试中取得开源模型中的领先表现。 目前,GLM-4.7已通过BigModel.cn提供API,并在z.ai全栈开发模式中上线Skills模块,支持多模态任务的统一规划与协作。Jinja00
agent-studioopenJiuwen agent-studio提供零码、低码可视化开发和工作流编排,模型、知识库、插件等各资源管理能力TSX0137
Spark-Formalizer-X1-7BSpark-Formalizer 是由科大讯飞团队开发的专用大型语言模型,专注于数学自动形式化任务。该模型擅长将自然语言数学问题转化为精确的 Lean4 形式化语句,在形式化语句生成方面达到了业界领先水平。Python00