TypeScript 是什么?
TypeScript 简称:TS,是 JavaScript 的超集。
- 简单来说就是:JS 有的 TS 都有。JS写的代码在TS的环境下都能跑。
- 在 JS 基础之上,为 JS 添加了类型支持。TypeScript =
Type+ JavaScript
TypeScript - 一种思维方式
对于前端工程师来说,使用 typescript 开发无疑就是在尝试换一种思维方式做事情
TS怎么影响我们写代码的思维方式?
TS 能强化了「面向接口编程」这一理念。我们知道稍微复杂一点的程序都离不开不同模块间的配合,不同模块的功能理应是更为清晰的,TS 能帮我们梳理清不同的接口。
是一种明确的模块抽象过程
举例来说,比如说我们用 TS 定义一个函数,TS 会要求我们对函数的参数及返回值有一个明确的定义,简单的定义一些类型,却能帮助我们定位函数的作用,比如说我们设置其返回值类型为 void ,就明确的表明了我们想利用这个函数的副作用;
说到这里不得不提一下前端生态
前端三大框架: Vue 3 源码使用 TS 重写、Angular 默认支持 TS、React 与 TS 完美配合,TypeScript 已成为大中型前端 项目的首选编程语言,
- js是动态语言(边解析->边执行),ts是静态语言(先编译-->执行)
- ts是包含js的,js的所有语法在ts中支持
- ts有类型提示
- ts是前端不可避免的趋势。
目前,前端最新的开发技术栈:
- React: TS + Hooks
- Vue: TS + Vue3 ts有类型支持,有强大的代码类型提示,可以让我们在写代码的过程中就能发现问题
下面我们来搭建一个可以运行TS的环境
第一步全局安装编译 TS 的工具包
安装包:npm i -g typescript
- typescript 包:用来编译 TS 代码的包,提供了
tsc命令,实现了ts -> js的转化 - 验证是否安装成功:
tsc –v(查看 typescript 的版本)
注意:Mac 电脑安装全局包时,需要添加 sudo 获取权限:sudo npm i -g typescript
编译并运行 TS 代码
-
创建ts文件。例如 hello.ts 文件(注意:TS 文件的后缀名为
.ts) -
编译。将 TS 编译为 JS
在终端中输入命令,
tsc hello.ts(此时,在同级目录中会出现一个同名的 JS 文件) -
执行 JS 代码。
- 在node中运行。在终端中输入命令,
node hello.js - 在浏览器中运行。
- 在node中运行。在终端中输入命令,
最后呢,带大家了解一下TS中的数据类型
TS 中的常用基础类型分为两类
-
JS 已有类型
- 原始类型:
number/string/boolean/null/undefined/symbol - 对象类型:
object(包括,数组、对象、函数等对象)
- 原始类型:
-
TS 新增类型
- 联合类型
- 自定义类型(类型别名)
- 接口
- 元组
- 字面量类型
- 枚举
- void
- any
- unkown
- 等......
注意:
- 原始类型在 TS 和 JS 中写法一致
- 对象类型在 TS 中更加细化,每个具体的对象(比如: 数组、对象、函数...)都有自己的类型语法
去年在搞一个项目的时候就用了ts,当时是平台库,定义了一堆声明文件d.ts,上层业务写js代码用这个库的时候可以联想那叫一个爽…
不过后来随着基础库越来越大,类型越来越复杂,定义也比较麻烦,前端人员维护类型的意识比较薄弱,习惯性弱类型,我后来离开那个项目后听同事说搞了一堆any…当时我就崩溃了T T所以有兴趣的小伙伴们一定要好好学呀!PS:拜托~超级好用的好吧!!!