likes
comments
collection
share

TypeScript 上山第一步 —— 经典介绍环节

作者站长头像
站长
· 阅读数 51

前言

目前本人想着一边实习一边来学习 ts,所以来做一个学习日记来记录并分享。当然呢,第一节肯定是老旧不变的介绍环节~

1.TypeScript 是什么

  1. TypeScript (简称:TS) 是 JavaScript 的超集 (JS 有的 TS 都有)。
  2. TypeScript = Type + JavaScript,在JS基础之上,为JS添加了类型支持。 (我想的:java + js => ts (bushi
  3. TypeScript 是微软开发的开源编程语言,可以在任何运行 JavaScript 的地方运行

TypeScript 上山第一步 —— 经典介绍环节

//TypeScript 代码: 有明确的类型,即 :number (数值类型)
let age1: number = 18
//JavaScript 代码: 无明确的类型
let age2 = 18

2. TypeScript 为什么要为 JS 添加类型支持?

背景:

因为JS的类型系统存在 “先天缺陷” ,JS代码中绝大部分错误都是类型错误 (Uncaught TypeError)。 这就导致了我们增加了找 Bug、改Bug的时间,严重影响开发效率

从运行过程来看:

我们的代码运行过程中都是:先编译后执行。

JS 是动态类型的编程语言,在编译期做类型检查,而 TypeScript 属于静态类型的编程语言,在执行期做类型检查。

  • JS 需要等到代码真正去执行的时候才能发现错误,这时发现则太晚。
  • TS 在代码编译的时候(代码执行前)就可以发现错误,可以更快地发现错误。
  • 此外,配合 VSCode 等开发工具,TS 可以提前到在编写代码的同时就发现代码中的错误,减少找 Bug、改 Bug 时间。

例如:可以指定 age 是 number 类型,在编译时进行类型检查提示错误。

const num = 18;
num.toLowerCase() 
// Uncaught TypeError: num.toLowerCase is not a function

这些错误导致在开发项目的时候,需要花挺多的时间去定位和处理 BUG,JS 是动态类型的编程语言,动态类型最大的特点就是它只能在代码执行期间做类型的相关检查,所以往往你发现问题的时候,已经晚了。

TS 是静态类型的编程语言,代码会先进行编译然后去执行,在代码编译期间做类型的相关检查,如果有问题编译是不通过的,也就暴露出了问题。

3. TypeScript相比JS的优势

  1. 更早地发现错误,减少找 Bug、改 Bug 时间,提升开发效率。
  2. 程序中任何位置的代码都有代码提示,随时随地的安全感,增强了开发体验。
  3. 强大的类型系统提升了代码的可维护性,使得重构代码更加容易。
  4. 支持最新的 ECMAScript 语法,优先体验最新的语法,让你走在前端技术的最前沿。
  5. T5 类型推断机制,不需要在代码中的每个地方都显示标注类型,让你在享受优势的同时,尽量降低了成本。

除此之外,Vue3 源码使用 TS 重写、Angular 默认支持 TS、React 与 TS 完美配合,TypeScript 已成为大中型前端项目的首先编程语言。(所以学这个是必要的😻😻

题外话:JS 的由来

互联网刚刚兴起时,网上冲浪越来越流行,对于开发客户端脚本的需求也逐渐增大。那时,大部分因特网用户还仅仅通过 28.8 kbit/s 的调制解调器连接到网络,即便这时网页已经不断地变得更大和更复杂。而更加加剧用户痛苦的是,仅仅为了简单的表单有效性验证,就要与服务器进行多次地往返交互。设想一下,用户填完一个表单,点击提交按钮,等待了 30 秒的处理后,看到的却是一条告诉你忘记填写一个必要的字段,所以在当时如果能在客户端完成一些基本的验证绝对是令人兴奋的。

可见浏览器需要一种可以嵌入网页的脚本语言,用来控制浏览器行为,并将某些不宜在服务端完成的操作放到客户端完成。

为了解决这一问题,Netscape(网景)公司决定着手开发一种客户端语言,用来处理这种问题。

1995 年 4 月,网景公司录用了 34 岁的系统程序员布兰登·艾奇( Brendan Eich ),开始为即将在1995年发行的 Netscape Navigator 2.0浏览器开发一款名为LiveScript(最初叫Mocha,9月更名为livescriplt)的脚本语言,并计划将LiveScript同时使用在浏览器和服务器中。

为了赶在发布日期(1995年12月发布)前完成LiveScript的开发,同时为了搭上媒体热炒 Java 的顺风车,Netscape与Sun公司成立了一个开发联盟,开发一款网页脚本语言,并且临时把 LiveScript 改名为 JavaScript,所以 JavaScript 主要是为了解决与用户的交互问题。

所以从本质上来,JavaScript 和 Java 没什么关系。后来Sun公司被Oracle收购,JavaScript版权归Oracle所有。

所以我说 ts 是 java 和 js 的孩子好像看起来也没毛病(虽然跟java没血缘关系就是了✌✌

此时JavaScript的主要特点:

  • 借鉴 C语言的基本语法;
  • 借鉴 Java 语言的数据类型和内存管理;
  • 借鉴 Scheme 语言的函数;
  • 借鉴 Self 语言的原型继承机制;
  • 1996年3月,Navigator 2.0 浏览器正式内置了 JavaScript 脚本语言;

网景公司发布的JavaScript 1.0后获得了巨大的成功。

这也是为什么有了 js 的情况下还需要推出 ts 了,短短几个月制作出的 js 这门编程语言并不完善,所以才会有有后来的 ts 来补充 js。

参考链接:

  1. blog.csdn.net/ztllll007/a…
  2. ai.itheima.com/news/202310…
转载自:https://juejin.cn/post/7360887387919532095
评论
请登录