共计 2568 个字符,预计需要花费 7 分钟才能阅读完成。
本文首发自「慕课网」,想理解更多 IT 干货内容,程序员圈内热闻,欢送关注 ” 慕课网 ”!
作者:一飞同学 | 慕课网讲师
近几年,前端技术倒退越来越迅速,其中 TypeScript 更是受到了越来越多的开发者的青眼,在 GitHub 上搜寻 star 数大于 1w 的我的项目,咱们能够看到很多出名的开源我的项目如 vscode、angular、ant-design、ionic、deno 等都应用 TypeScript 开发,连火爆的 Vue.js 3.0 也是用 TypeScript 重构,尤大大都忍不住收回了“真香”的舆论。
TypeScript 的火爆水平大有成为下一代前端开发语言的趋势,TypeScript 作为 JavaScript 语言的超集,它为 JavaScript 增加了可抉择的类型标注,大大加强了代码的可读性和可维护性。同时,它提供最新和一直倒退的 JavaScript 个性,能让咱们建设更强壮的组件。越来越多的轮子将用 TypeScript 开发和重构,咱们如果想造轮子,也应该应用 TypeScript 这把利器。明天咱们通过一篇文章疾速理解下 TypeScript。
1. TypeScript 与 JavaScript
1.1 TypeScript 简介
官网定义:
TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.
Any browser. Any host. Any OS. Open source.
- TypeScript 是 JavaScript 的超集,它能够编译成纯 JavaScript。
- TypeScript 基于 ECMAScript 规范进行拓展,反对 ECMAScript 将来提案中的个性,如装璜器、异步性能等。
- TypeScript 编译的 JavaScript 能够在任何浏览器运行,TypeScript 编译工具能够运行在任何操作系统上。
- TypeScript 起源于开发较大规模 JavaScript 应用程序的需要。由微软在 2012 年公布了首个公开版本。
从以上个性中能够看到,TypeScript 与 JavaScript、ECMAScript 有着十分深刻的分割。在具体介绍 TypeScript 之前,先来简略理解一下 ECMAScript 与 JavaScript 的倒退。
1.2 ECMAScript
ECMA International
: 一个制订技术标准的组织。
ECMA-262
:由 ECMA International 公布。它蕴含了脚本语言的规范。
ECMAScript
: 由 ECMA International 以 ECMA-262 和 ECMA-402 标准的模式进行标准化的。
JavaScript
: 通用脚本编程语言,它遵循了 ECMAScript 规范。换句话说,JavaScript 是 ECMAScript 的方言。
通过浏览 ECMAScript 规范,你能够学会怎么实现一个脚本语言;而通过浏览 JavaScript 文档,你能够学会怎么应用脚本语言编程。
2019 年 6 月,ECMA-262 第 10 版定义了 ECMAScript 2019 通用编程语言。
1.3 JavaScript 版本
说 JavaScript 的版本,实际上就是说它实现了 ECMAScript 规范的哪个版本
2. 为什么要用 TypeScript
2.1 动态类型
我曾经纯熟应用 JavaScript,为什么要用 TypeScript 呢?
答复这个问题前,先来看看上面这些 JavaScript 中的常见谬误:
- Uncaught TypeError: Cannot read property
- TypeError:‘undefined’is not an object
- TypeError: null is not an object
- TypeError: Object doesn’t support property
- TypeError:‘undefined’is not a function
- TypeError: Cannot read property‘length’
认真看下不难发现,这些谬误大都是一些比拟高级的类型谬误。
JavaScript 只会在 运行时
才去做数据类型查看,而 TypeScript 作为动态类型语言,其数据类型是在 编译期间
确定的,编写代码的时候要明确变量的数据类型。应用 TypeScript 后,这些低级谬误将不再产生。
2.2 三大框架反对
咱们学习一门新技术会关怀它的生命力问题,如果这门技术在较短时间内就要被淘汰,那破费大量的工夫学习也是不划算的。TypeScript 可能放弃短暂生命力的另一个起因,就是统治前端的三大框架对 TypeScript 的反对。
- Angular 是 TypeScript 最早的支持者,Angular 官网举荐应用 TypeScript 来创立利用。
- React 尽管常常与 Flow 一起应用,然而对 TypeScript 的反对也很敌对。
- Vue3.0 正式版行将公布,由 TypeScript 编写。
从国内的气氛来看,由前端三大框架引领的 TypeScript 热潮曾经涌来,很多招聘要求上也都有了 TypeScript 的身影。
2.3 兼容 JavaScript 的灵活性
TypeScript 尽管谨严,但没有丢失 JavaScript 的灵活性,TypeScript 十分容纳:
- TypeScript 通过
tsconfig.json
来配置对类型的查看严格水平。 - 能够把
.js
文件间接重命名为.ts
。 - 能够通过将类型定义为
any
来实现兼容任意类型。 - 即便 TypeScript 编译谬误,也能够生成 JavaScript 文件。
这里先简略介绍下 any 类型,后续会具体解说。比方一个 string 类型,在赋值过程中类型是不容许扭转的:
let brand: string = 'imooc'
brand = 1 // Type '1' is not assignable to type 'string'.ts(2322)
如果是 any
类型,则容许被赋值为任意类型,这样就跟咱们平时写 JavaScript 一样了:
let brand: any = 'imooc'
brand = 1
基于下面这些特点,一个相熟 JavaScript 的工程师,在查阅一些 TypeScript 语法后,即可疾速上手 TypeScript,加油!
欢送关注「慕课网」帐号,咱们会始终保持内容原创,提供 IT 圈优质内容,分享干货常识,大家一起独特成长吧!
本文原创公布于慕课网,转载请注明出处,谢谢合作