跳转到主内容

宣布 Electron 中的 TypeScript 支持

· 阅读时间:约 6 分钟

electron npm 包现在包含一个 TypeScript 定义文件,提供整个Electron API的详细注释。 这些注释可以改进您的 Electron 开发 感受 ,即使您正在编写原版JavaScript 只需要运行 npm install electron 就可以在您的项目中获得最新的 Electron 类型注释。


TypeScript 是一种由Microsoft创建的开源编程语言。 它是一个添加了对 静态类型的支持并扩展了语言的 JavaScript 超集。 TypeScript 社区近年来迅速增长。 TypeScript 在 最近的Stack Overflow开发者调查 名列最受开发者喜爱的编程语言中。 TypeScript 被描述为 "增强的JavaScript", GitHub, Slack, 和 Microsoft 都用它来写成可缩放的 Electron 应用,这些应用被数以百万计的人使用 。

TypeScript 支持 JavaScript 中的许多较新的语言功能,如 类,对象析构, 异步,但其真正的不同的 功能是 类型注释。 声明程序所期望的输入和输出数据类型可以通过帮助您在编译时找到错误降低错误,类型注释还可以作为程序工作方式的正式声明

当库使用原版 Javascript 编写时,类型常常很模糊 定义通常是写文档时的事后思考。 函数通常可以 接受更多的类型,而不是文件记录的类型, 或者函数可能有隐藏的 未被记录的约束,因此可能导致运行时错误。

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

很多受欢迎的项目,例如 , Vue. s, node-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,你就能获取到和你的版本一致的最新TypeScript定义

用法

关于如何安装和使用Electron新的 TypeScript 定义的概要, 观看这个简短的演示:

如果您正在使用 Visual Studio Code,您已经 得到了内置的 TypeScript 支持。 还有社区维护的 插件用于 Atom, Sublime, vim, 和 其他编辑器

一旦您的编辑器配置好了 TypeScript ,您将开始看到更多的 基于上下文的行为,例如自动补全,内嵌方法引用, 参数检查等等。

Method autocompletion

Method reference

Argument checking

开始使用 TypeScript

如果你刚刚知道 TypeScript 并想了解更多信息, 此 来自Microsoft 的介绍视频 提供了关于为何创建这门语言的很好的概述。 如何工作, 如何使用它, 以及它的未来。

在官方的 TypeScript 网站上还有 HandbookPlayground

因为TypeScript 是 JavaScript 的超集,您现有的 JavaScript 代码 已经是有效的 TypeScript。 这意味着您可以根据需要逐步将现有的 JavaScript 项目转换为 TypeScript 并使用新语言功能。

谢谢!

没有Electron的 开源社区维护者的帮助,这个项目是不可能实现的。 感谢 Samuel Attard, Felix Rieseberg, Birunthan Mohanathas, Milan Burda, Brendan Forster, 和许多其他人的错误修复、文件改进、 和技术指导。

支持

如果您在使用 Electron 新的 TypeScript 定义文件时遇到任何问题, 请在 electron-typescript-definition 仓库中提交一个Issue。

尽情使用 TypeScript 吧!