TypeScript 类型检查机制包含三个部分: 类型推断 类型保护 类型兼容性 本节介绍其中的类型推断,类型推断主要用于那些没有明确指出类型的地方帮助确定和提供类型,这是 TypeScript 的一种能力。 类型推断是有方向的,要注意区分从左向右和从右向左两种推断的不同应用。 1. 慕课解释 类型推断的含义是不需要指定变量类型或函数的返回值类型,TypeScript 可以根据一些简单的规则推断其
本节介绍三种字面量类型,分别是字符串字面量类型、布尔字面量类型和数字字面量类型。 1. 慕课解释 在计算机科学中,字面量(literal)是用于表达源代码中一个固定值的表示法(notation)。 通俗的讲,字面量也可以叫直接量,就是你看见什么,它就是什么。 我们之前介绍字符串类型,其实是一个集合类型,所有的字符串集合在一起构成了 string 类型。而字符串字面量类型就直接多了,你定义为 'im
本节介绍 TypeScript 的函数,函数是任何应用程序的基本构建部分,通过函数返回一个计算后的值。 TypeScript 的函数声明中函数类型是极为重要的,函数的参数都需要标注参数类型,这可以帮助编译器进行正确的类型推导。本节还会着重讲解 this 的使用,可以通过编译选项和 this 参数两种方法,正确理解 this 的指向。 1. 慕课解释 在 JavaScript 中,函数是头等(fir
自 ES6 起,终于迎来了 class,对于开发者来说,终于可以使用基于类的面向对象式编程。TypeScript 在原 ES6 中类的基础上,还添加了一些新的功能,比如几种访问修饰符,这是在其他面向对象语言中早就实现了的。 JavaScript 的类作为语法糖,我们不但需要知道怎么去使用,还应该了解其本质,涉及到原型的部分希望大家能深入理解。 1. 慕课解释 类描述了所创建的对象共同的属性和方法。
本节介绍 TypeScript 各种类型接口的声明及其使用方法,接口在 TypeScript 中是极其重要的,我们使用接口来定义契约,如类型命名、属性检查、函数类型定义等。 在下一节学习完类之后,你会知道类也可以作为接口来使用。接口的种类繁多,在学习过程中一定要亲手编写,以达到灵活使用。 1. 慕课解释 TypeScript 的核心原则之一是对值所具有的结构进行类型检查。 它有时被称做“鸭式辨型法
本节介绍 never 和 unknown 类型,其中 unknown 类型作为 any 类型对应的安全类型使用起来更加安全,如果有 any 类型的使用需求,应尽量使用 unknown 类型来替代 any 类型。 1. 慕课解释 never 类型表示那些永不存在的值的类型。 unknown 类型是 any 类型对应的安全类型。 2. never 类型 never 类型是任何类型的子类型,也可以赋值给
本节介绍枚举类型的定义及其使用,需要定义一组相同主题的常量数据时,应该立即想到枚举类型。在学习过程中,需要注意枚举类型的正向映射和反向映射,可以通过编译后的 JavaScript 源码进行分析,为什么可以进行反向映射。 1. 慕课解释 使用枚举我们可以定义一些带名字的常量。TypeScript 支持数字的和基于字符串的枚举。 2. 定义及使用场景 枚举类型弥补了 JavaScript 的设计不足,
本节介绍元组这一数据类型的定义及其使用,通过元组可以存储不同类型的元素,而非像数组那样只能存储相同元素类型(any[] 除外)。 1. 慕课解释 相同类型元素组成成为数组,不同类型元素组成了元组(Tuple)。 2. 定义元组类型 声明一个由 string 和 number 构成的元组: const list: [string, number] = ['Sherlock', 1887] //
本节介绍 symbol 类型的语法、使用方法和应用场景,每个从 Symbol() 返回值的唯一性是使用 symbol 类型的最重要原因。 1. 慕课解释 symbol 是一种基本数据类型(primitive data type)。 Symbol() 函数会返回 symbol 类型的值。每个从 Symbol() 返回的 symbol 值都是唯一的。 2. 语法 Symbol([description
本节介绍的 bigint 数据类型是用来表示那些已经超出了 number 类型最大值的整数值,对于总是被诟病的整数溢出问题,使用了 bigint 后将完美解决。 1. 慕课解释 bigint 是一种基本数据类型(primitive data type)。 JavaScript 中可以用 Number 表示的最大整数为 2^53 - 1,可以写为 Number.MAX_SAFE_INTEGER。如果
自本节起,我们将开始接触 TypeScript 的类型系统,这也是 TypeScript 最为核心的部分。 本节介绍 TypeScript 中一些基础类型,有些特殊类型会在接下来进行单节描述。在进行变量声明时,需要注明其对应的类型,这个跟 JavaScript 的变量声明不同。在写 TypeScript 代码时,所有的变量都需要有类型,这个观点要深刻的烙印在心里。 1. 慕课解释 TypeScri
本节介绍 var let const 这三种变量的声明方式,重点讨论作用域与变量提升的相关知识点,这部分往往也是面试常考部分,需要多加注意。 说明: 在使用 TypeScript 进行变量声明时,一般建议添加对应的变量类型,由于本节是整个系列教程的第一节,还未介绍 TypeScript 的类型系统,所以本节的例子仍采用 JavaScript 的变量声明方式。虽然在变量声明时没有添加变量类型,但是
本节介绍 TypeScript 的安装与两种使用方式,大家根据本节所介绍的流程一步步操作,相信很快就能编写自己的 TypeScript 代码。 1. 慕课解释 环境准备: 安装 Node.js 环境(version: 8.14.0+) 确保 npm 或者 yarn 可用 到 nodejs官网 根据自己的操作系统下载对应 Node.js 版本,Node.js 自带 npm。安装后,在 终端 执行如下
本节首先介绍了 TypeScript 与 JavaScript 的关系,梳理清楚 TypeScript、JavaScript、ECMAScript 这三个名词所代表的具体含义。另外通过三个方向的阐述说明了为什么要使用 TypeScript,以及现在学习 TypeScript 的必要性。 TypeScript 不是一门全新的语言,TypeScript 是 JavaScript 的超集,它对 Java
此 preset 包含如下插件: @babel/plugin-transform-typescript 你需要为 @babel/cli 和 @babel/node 命令行工具指定 --extensions ".ts" 参数,以使其能够处理 .ts 文件。 示例 输入 const x: number = 0; 输出 const x = 0; 安装 npm install --save-dev @