TypeScript 官方:JavaScript 中直接支持类型!
Posted Creator星球游戏开发社区
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TypeScript 官方:JavaScript 中直接支持类型!相关的知识,希望对你有一定的参考价值。
TypeScript 团队在深夜突然发了一条推,神秘兮兮说:“如果我们可以直接在 javascript 中支持类型,会怎么样?”。
他们在评论区说:“类型作为注释”的提案意味着浏览器可以直接运行通过了 TS 检查的代码(即使它们没有做任何类型检查)。这意味着更好的编辑体验和更快的迭代。
这是一个很让人兴奋的想法,接下来我们具体看看这个提案的内容。
这是一个新的 stage0 的语法提案,暂时还未提交给 TC39。github 的仓库地址是 https://github.com/giltayar/proposal-types-as-comments
选项来运行这些文件。这个特性使得在不需要构建步骤的情况下就可以获得一部分的TypeScript体验,您可以将其用于小型的脚本、基本网页和 Node.js服务端代码等等。不过,您会注意到这有点冗长,失去了 TypeScript 写类型的简洁性。
如果我们全都要呢?
如果我们可以有一些像TypeScript这样的语法,但在JavaScript中完全被忽略——有点像注释。
的提案。我们将在这项提案的共同倡导者,彭博社的Rob Palmer[5]和Igalia的Romulo Cintra[6]的支持和指导下完成这项工作。达到第1阶段意味着标准委员会认为支持类型语法对于ECMAScript是值得考虑的。这并不是一件肯定会引起轰动的事情——委员会内部有许多有价值的观点,我们确实期待一些怀疑的声音。这样的提案会得到大量反馈和适当的审查。这一过程可能涉及大量的设计变更,可能需要数年时间才能产生结果。
但如果我们完成了这一切,我们就有机会对JavaScript世界做出最有影响力的改进之一。我们对此感到兴奋,希望你们也一样。
如果您有兴趣了解更多关于细节和当前方向的信息,请前往提案的仓库[7]。我们期待着听到你的想法!
最后,TypeScript团队和champions group要感谢所有从事现有技术[8]工作的人,以及那些伸出援助之手帮助进行评论的撰稿人,尤其是帮助推动这项工作的Gil Tayar[9]。我们非常感激能成为这样一个充满激情的社区的一部分!
参考资料
[1]类型检查: https://www.typescriptlang.org/docs/handbook/intro-to-js-ts.html
[2]作为提案提交: https://github.com/giltayar/proposal-types-as-comments
[3]这个提案的想法是: https://github.com/giltayar/proposal-types-as-comments
[4]Stage 1: https://tc39.es/process-document/
[5]Rob Palmer: https://github.com/robpalme
[6]Romulo Cintra: https://github.com/romulocintra
[7]请前往提案的仓库: https://github.com/giltayar/proposal-types-as-comments/
[8]现有技术: https://github.com/giltayar/proposal-types-as-comments#prior-art
[9]Gil Tayar: https://github.com/giltayar/
从JavaScript到TypeScript,Flow与WebAssembly
1、TypeScript
TypeScript 是一种由微软开发的自由和开源的编程语言,它是 JavaScript 的一个超集,扩展了 JavaScript 的语法,主要提供了型别系统和对 ES6 的支持。
TypeScript 可处理已有的 JavaScript 代码,并只对其中的 TypeScript 代码进行编译。
官方开源地址:
https://github.com/Microsoft/TypeScript
TypeScript 入门教程:
https://www.runoob.com/w3cnote/getting-started-with-typescript.html
2、Flow
没有类型的静态检查是 JavaScript 语言的先天缺失,所有很多变量类型相关的问题只能在运行阶段暴露出来。为了使 JavaScript 语言的类型更加安全,业界的实践有 TypeScript;
这些都需要你重新学习一套语言语法,然后由编译器把相应的代码编译成原生的 JavaScript 代码;在一个现有的系统中把当前代码改成 TypeScript 成本比较高,需要重写所有逻辑。
Facebook 推出的 Flow 是另一个思路。Flow 是一个静态类型检测工具;在现有项目中加上类型标注后,可以在代码阶段就检测出对变量的不恰当使用。Flow 弥补了 JavaScript 天生的类型系统缺陷。利用 Flow 进行类型检查,可以使你的项目代码更加健壮,确保项目的其他参与者也可以写出规范的代码;而 Flow 的使用更是方便渐进式的给项目加上严格的类型检测。
flow入门教程:
https://zhuanlan.zhihu.com/p/26204569
3、WebAssembly
WebAssembly是由 Google、Microsoft、Mozilla、Apple 等几家大公司合作发起的一个关于面向 Web 的通用二进制和文本格式的项目。
WebAssembly 是一种新的字节码格式,旨在成为高级语言的编译目标,目前可以使用 C、C++、Rust、Go、Java、C#等编译器来创建 wasm 模块。该模块以二进制的格式发送到浏览器,并在专有虚拟机上执行,与 JavaScript 虚拟机共享内存和线程等资源。
WebAssembly 可以看做是对 JavaScript 的加强,弥补 JavaScript 在执行效率上的缺陷。
学习资料:
https://developer.mozilla.org/zh-CN/docs/WebAssembly/Concepts
以上是关于TypeScript 官方:JavaScript 中直接支持类型!的主要内容,如果未能解决你的问题,请参考以下文章