Levix 空间站
921 subscribers
219 photos
11 videos
20 files
1.38K links
主要分享前端、AI 以及前沿科技资讯。

🚫 禁止人身攻击:请在评论区保持尊重和友好,避免不当言论和负面互动。

🚫 禁止违规内容:请勿发布任何黄赌毒、宗教极端、政治敏感或其他违反社区规定的内容。
主要分享前端以及业界科技资讯。

🚫 禁止广告与刷屏:为了维护良好的交流环境,请不要进行任何形式的广告推广、黑产活动、刷屏行为及发布不适内容。

🔒 保护个人信息:请注意个人隐私和网络安全,不要在评论区泄露个人信息或点击不明链接。
Download Telegram
TypeScript 5.4 发布

新版本的主要特性包括:

1. 闭包中的保留类型缩小(Preserved Narrowing in Closures)

2. NoInfer 实用类型(NoInfer Utility Type)

3. Object.groupBy 和 Map.groupBy 方法

4. 对 require() 的更好支持

5. 增强的导入属性和断言检查

#TypeScript #前端

https://devblogs.microsoft.com/typescript/announcing-typescript-5-4/
Figma 为了提高移动渲染架构的性能,曾使用自创的编程语言 Skew。随着时间的推移,Skew 语言的局限性逐渐显现,包括新员工上手难度大、难以与代码库其他部分集成以及缺乏 Figma 外部的开发者生态系统。因此,Figma 最近完成了将所有 Skew 代码迁移到 TypeScript 的过程。

Skew 语言的由来

1. Skew 是 Figma 在早期为了提高播放引擎性能而创造的。

2. 它最初用于在 web 和移动端上支持 Figma 的原型查看器,但随着时间推移,Figma 意识到新员工难以上手 Skew,而且它难以与代码库其他部分集成,并缺乏 Figma 以外的开发者生态系统。

TypeScript 的优势

1. Figma 切换到 TypeScript 之后使得代码更容易集成内外部代码,利用了 TypeScript 生态系统的工具,如 linters、打包器和静态分析工具。

2. 使用了现代 JavaScript 特性如 async/await 和更灵活的类型系统,从而降低了新开发者的上手难度。

迁移过程

1. WebAssembly 的广泛支持:TypeScript 可以使用基于 WebAssembly 的 C++ 实现,以保持在移动浏览器上的性能,这在早期是不可能实现的。

2. Skew 优化的追趕:Figma 发现替换 Skew 的关键性能优化部分有了其他解决方案,这使得放弃 Skew 成为可能。

3. 转换代码库:
第一阶段:开发者继续编写 Skew 代码,新的 TypeScript 编译器显示了新代码库的样子。
第二阶段:直接从 Skew 生成 TypeScript 代码并开始使用生成的 TypeScript 代码。
第三阶段:将 TypeScript 代码作为开发的源头,并停止从 Skew 自动生成代码。

Figma 使用了源代码映射(source maps)来保持调试体验,并实施条件编译以便在不同构建目标间共享代码库。

Figma 通过全面过渡到 TypeScript,使得关键代码库现代化,提高了开发的效率,使代码更容易集成,构筑起了生机勃勃的开发生态。这次迁移也提供了一个重要的学习机会,Figma 团队学习了如何利用 TypeScript 的不同方面,并期待将这些新知识应用到未来的开发中。

#TypeScript

https://www.figma.com/blog/figmas-journey-to-typescript-compiling-away-our-custom-programming-language/
《50 TypeScript F*ck Ups》 是一本由 Azat Mardan 编写的指南,专注于指出 JavaScript 和 TypeScript 开发者在编码过程中可能遇到的常见错误,并提供避免和修复这些错误的技巧。

我试了一下只需要填入一个邮箱就可以免费下载,但是建议有海外银行卡的同学可以支持下作者喝咖啡。

#TypeScript

https://leanpub.com/50-ts
微软官方博客宣布了 TypeScript 性能提升的重大进展,目标是将 TypeScript 的性能提升 10 倍。TypeScript 团队正在开发原生版本的 TypeScript 编译器和工具,这一改进将显著加快编辑器启动速度,减少大部分构建时间,并大幅降低内存使用。

在性能提升方面,原生实现已经能够加载许多流行的 TypeScript 项目,包括 TypeScript 编译器本身。例如,对 VS Code 代码库进行测试时,当前版本的 tsc 需要 77.8 秒,而原生版本仅需 7.5 秒,速度提升了 10.4 倍;Playwright 代码库从 11.1 秒缩短到 1.1 秒,速度提升了 10.1 倍;TypeORM 代码库从 17.5 秒缩短到 1.3 秒,速度提升了 13.5 倍。这一性能提升不仅适用于大型项目,也能让小型项目受益。

在编辑器性能方面,原生语言服务将使编辑器加载大型项目的速度大幅提升。以 VS Code 为例,当前加载整个项目需要 9.6 秒,而原生语言服务仅需 1.2 秒,项目加载时间缩短了 8 倍。此外,内存使用量也减少了约一半,且未来还有进一步优化的空间。

关于版本规划,TypeScript 5.8 已发布,5.9 即将推出。基于 JavaScript 的代码库将继续发展到 6.x 系列,TypeScript 6.0 将引入一些弃用和破坏性变更,以与原生代码库对齐。当原生代码库与当前 TypeScript 达到足够的一致性后,将作为 TypeScript 7.0 发布。团队将在开发过程中定期发布稳定性和功能里程碑。

微软还计划在原生版本中引入新的编译器 API 和语言服务器协议(LSP),以更好地与其他语言对齐。团队已在 GitHub 上提供了相关代码,并发布了常见问题解答(FAQ)。此外,微软将于 3 月 13 日在 TypeScript 社区 Discord 举办问答活动,开发者可以参与讨论。

这一性能提升将为 TypeScript 和 JavaScript 开发带来巨大变革,不仅能够实现即时、全面的错误列表,还能支持更高级的重构和深度代码分析,为未来的 AI 工具提供更强大的支持。

#TypeScript #性能

https://devblogs.microsoft.com/typescript/typescript-native-port/