乐趣区

关于前端:前端为什么一定要掌握TypeScript

本文首发自「慕课网」,想理解更多 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 圈优质内容,分享干货常识,大家一起独特成长吧!

本文原创公布于慕课网,转载请注明出处,谢谢合作

退出移动版