跳至主要内容

宣布 Electron 中支持 TypeScript

·阅读时间:4 分钟

electron npm 包现在包含一个 TypeScript 定义文件,该文件提供了对整个 Electron API 的详细注释。即使您正在编写普通的 JavaScript,这些注释也能改善您的 Electron 开发体验。只需 npm install electron 即可在您的项目中获得最新的 Electron 类型。


TypeScript 是一种由微软创建的开源编程语言。它是 JavaScript 的超集,通过添加对静态类型的支持来扩展该语言。TypeScript 社区近年来发展迅速,TypeScript 在最近的 Stack Overflow 开发者调查中被评为最受欢迎的编程语言 之一。TypeScript 被描述为“可扩展的 JavaScript”,来自GitHubSlack微软 的团队都在使用它来编写可扩展的 Electron 应用程序,这些应用程序被数百万用户使用。

TypeScript 支持 JavaScript 中许多较新的语言特性,例如类、对象解构和 async/await,但其真正的区别特性是**类型注释**。声明程序期望的输入和输出数据类型可以减少错误,因为它们可以帮助您在编译时查找错误,并且这些注释还可以用作对程序如何工作 的正式声明。

当库是用普通的 JavaScript 编写的时,类型通常在编写文档时作为事后想法模糊地定义。函数通常可以接受比文档中记录的更多类型,或者函数可能具有未记录的隐藏约束,这会导致运行时错误。

TypeScript 使用**定义文件**解决了这个问题。TypeScript 定义文件描述了库的所有函数及其期望的输入和输出类型。当库作者将 TypeScript 定义文件与发布的库捆绑在一起时,该库的使用者可以在编辑器中探索其 API 并立即开始使用它,通常不需要查阅库的文档。

许多流行的项目,如AngularVue.jsnode-github(以及现在的 Electron!)都编译了自己的定义文件并将其与发布的 npm 包捆绑在一起。对于没有捆绑自己的定义文件的项目,可以使用DefinitelyTyped,这是一个由社区维护的第三方定义文件生态系统。

安装

从 1.6.10 版本开始,Electron 的每个版本都包含自己的 TypeScript 定义文件。当您从 npm 安装 electron 包时,electron.d.ts 文件会自动与安装的包捆绑在一起。

最安全的方法 是使用确切的版本号安装 Electron

npm install electron --save-dev --save-exact

或者如果您正在使用yarn

yarn add electron --dev --exact

如果您之前已经在使用第三方定义,如 @types/electron@types/node,则应将其从您的 Electron 项目中删除,以防止任何冲突。

定义文件源自我们的结构化 API 文档,因此它始终与Electron 的 API 文档 保持一致。只需安装 electron,您将始终获得与您使用的 Electron 版本最新的 TypeScript 定义。

使用

有关如何安装和使用 Electron 的新 TypeScript 注释的摘要,请观看此简短的演示屏幕录像

如果您使用的是Visual Studio Code,则已经内置了 TypeScript 支持。还有针对AtomSublimevim其他编辑器 的社区维护插件。

一旦您的编辑器配置了 TypeScript,您将开始看到更多上下文感知的行为,如自动完成建议、内联方法引用、参数检查等等。

Method autocompletion

Method reference

Argument checking

TypeScript 入门

如果您是 TypeScript 新手并想了解更多,这个来自微软的介绍视频 提供了对该语言创建的原因、工作原理、如何使用以及发展方向的很好的概述。

在官方的 TypeScript 网站上还有一个手册 和一个游乐场

因为 TypeScript 是 JavaScript 的超集,所以您现有的 JavaScript 代码已经是有效的 TypeScript。这意味着您可以逐步将现有的 JavaScript 项目迁移到 TypeScript,根据需要添加新的语言特性。

感谢

这个项目如果没有 Electron 的开源维护者社区的帮助是不可能实现的。感谢Samuel AttardFelix RiesebergBirunthan MohanathasMilan BurdaBrendan Forster 和其他许多人对他们的错误修复、文档改进和技术指导。

支持

如果您在使用 Electron 的新 TypeScript 定义文件时遇到任何问题,请在 electron-typescript-definitions 存储库上提交问题。

祝您 TypeScript 开发愉快!