TypeScript入门 | 字节青训营笔记

69 阅读4分钟

这是我参与「第四届青训营」笔记创作活动的的第5天

TypeScript简介

TS的由来

我们程序员编写最常见的错误就是类型错误,如何解决这个问题你,这时有了TS。为了解决类型判断,TS添加了自己新的语法。TS的目标就是成为JS程序的静态类型检查器,确保我们的类型正确。

TypeScript在代码编译的时候就可以发现错误。

有些语言根本不允许那些有缺陷的程序运行。在不运行代码的情况下检测代码中的错误称为

静态检查。确定什么是错误,什么不是基于被操作的值的种类被称为静态类型检查。

什么是TS

  • 动态类型
    • 在执行阶段才去进行一个类型的匹配
    • JS的一个特征是脚本语言,在浏览器执行的时候才会进行类型匹配
  • 静态类型
    • 提前去做类型的匹配
    • 如python,java都是需要先走编译流程
  • 弱类型语言
    • 特征:类型转换
    • 例如:当运行数字1和字符串1相加的时候,js是可以通过的
  • JavaScript
    • 是动态类型,弱类型语言
  • TypeScript
    • 是静态类型,弱类型语言
    • 可读性增强,基于语法解析TSDoc,ide能力得到增强
    • 可维护性增强:在编译阶段暴露大部分错误
    • 是JS的超集
      • 包含于兼容所有JS特性,可以共存
      • 支持渐进式引入与升级

TS 的特点

  • 可读性增强:基于语法解析TSDos,ide增强
  • 可维护性增强:在编译阶段暴露大部分错误。(多人合作的大型项目中,获得更好的稳定性和开发效率)
  • 包含于兼容所有JS特性,支持共存
  • 支持渐进式引入与升级

TypeScript与JS相比的优势:

  • TypeScript工具使重构更变的容易、快捷。

  • TypeScript 引入了 JavaScript 中没有的“类”概念。

  • TypeScript 中引入了模块的概念,可以把声明、数据、函数和类封装在模块中

  • 类型安全功能能在编码期间检测错误,这为开发人员创建了一个更高效的编码和调试过程。

TS的运行

TypeScript 是一种静态类型语言,也是一种保留JavaScript

运行时行为的编程语言。

例如,在 JavaScript 中除以零会产生Infinity而不是抛出运行时异常。作为一项原则,TypeScript永远不会改变 JavaScript 代码的运行时行为。这意味着如果您将代码从 JavaScript 移动到 TypeScript,即使 TypeScript 认为代码存在类型错误,也可以保证以相同的方式运行。

TypeScript是否可以直接执行呢?答案是否定的,这是因为浏览器的js引擎只能是执行js。因此TypeScript如果要执行,就必须先要编译为JavaScript。

一旦 TypeScript 的编译器检查完你的代码,它就会删除类型以生成生成的“编译”代码。这意味着一旦你的代码被编译,生成的纯 JS 代码就没有类型信息。

TypeScript 类型

常用基础类型

JS已有类型

  • 原始类型(基础数据类型):number/string/boolean/null/undefined/symbol
  • 对象类型:object

TS新增类

  • 联合类型,自定义类型(类型别名),接口,元组,字面量类型,枚举,void,any等

原始类型

原始类型特点: 简单,完全按照JS中的类型来书写。

对象类型

特点:对象类型在TS更加细化,对每个的对象都有自己的类型语言。

常用高级类型

高级类型

  1. class类
  2. 类型兼容性
  3. 交叉类型
  4. 泛型,keyof
  5. 索引签名,索引查询类型
  6. 映射类型

工程应用

Web

  • webpack
    • 配置webpack loader(将webpack不能识别的转为可识别的)
    • 配置tsconfig.js文件
    • 运行webpack启动/打包
    • loader处理ts文件时会进行编译与类型检查

Node

  • Node
    • 安装Node与npm
    • 配置tsconfig.js文件
    • 使用npm安装tsc
    • 使用tsc运行编译得到js文件