跳到主要内容

Electron 中宣布支持 TypeScript

·4 分钟阅读

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


TypeScript 是 Microsoft 创建的开源编程语言。它是 JavaScript 的超集,通过添加对静态类型的支持来扩展该语言。TypeScript 社区近年来发展迅速,在最近的 Stack Overflow 开发者调查中,TypeScript 被评为 最受欢迎的编程语言之一。TypeScript 被描述为“可扩展的 JavaScript”,GitHubSlackMicrosoft 的团队都在使用它来编写可扩展的 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 新手并想了解更多信息,Microsoft 的这个 入门视频 提供了关于该语言为何创建、如何工作、如何使用以及未来发展方向的良好概述。

官方 TypeScript 网站上还有一个 手册 和一个 playground

由于 TypeScript 是 JavaScript 的超集,因此您现有的 JavaScript 代码已经是有效的 TypeScript。这意味着您可以逐步将现有的 JavaScript 项目过渡到 TypeScript,根据需要添加新的语言功能。

感谢

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

支持

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

TypeScript 愉快!