跳转到主要内容

书籍

TypeScript 教程

面向初学者的 TypeScript 教程,介绍基本概念、类型系统与日常用法。适合已有一点 JavaScript 基础、想补类型思维的读者。

31 页更新于 3 个月前

开始阅读
CC BY-SA 3.0

目录31

  1. 01 TypeScript 语言简介 概述 TypeScript(简称 TS)是微软公司开发的一种基于 JavaScript (简称 JS)语言的编程语言。 它的目的并不是创造一种全新语言,而是增强 JavaScript 的功能,使其更适合多人合作的企... 4 个月前
  2. 02 TypeScript 基本用法 本章介绍 TypeScript 的一些最基本的语法和用法。 类型声明 TypeScript 代码最明显的特征,就是为 JavaScript 变量加上了类型声明。 let foo:string; 上面示例中,变量 f... 4 个月前
  3. 03 any 类型,unknown 类型,never 类型 本章介绍 TypeScript 的三种特殊类型,它们可以作为学习 TypeScript 类型系统的起点。 any 类型 基本含义 any 类型表示没有任何限制,该类型的变量可以赋予任意类型的值。 let x:any... 3 年前
  4. 04 TypeScript 的类型系统 本章是 TypeScript 类型系统的总体介绍。 TypeScript 继承了 JavaScript 的类型,在这个基础上,定义了一套自己的类型系统。 基本类型 概述 JavaScript 语言(注意,不是 Ty... 4 个月前
  5. 05 TypeScript 的数组类型 JavaScript 数组在 TypeScript 里面分成两种类型,分别是数组(array)和元组(tuple)。 本章介绍数组,下一章介绍元组。 简介 TypeScript 数组有一个根本特征:所有成员的类型必... 3 年前
  6. 06 TypeScript 的元组类型 简介 元组(tuple)是 TypeScript 特有的数据类型,JavaScript 没有单独区分这种类型。它表示成员类型可以自由设置的数组,即数组的各个成员的类型可以不同。 由于成员的类型可以不一样,所以元组必... 3 年前
  7. 07 TypeScript 的 symbol 类型 简介 Symbol 是 ES2015 新引入的一种原始类型的值。它类似于字符串,但是每一个 Symbol 值都是独一无二的,与其他任何值都不相等。 Symbol 值通过 Symbol()函数生成。在 TypeScr... 1 年前
  8. 08 TypeScript 的函数类型 简介 函数的类型声明,需要在声明函数时,给出参数的类型和返回值的类型。 function hello( txt:string ):void { console.log('hello ' + txt); } ... 2 年前
  9. 09 TypeScript 的对象类型 简介 除了原始类型,对象是 JavaScript 最基本的数据结构。TypeScript 对于对象类型有很多规则。 对象类型的最简单声明方法,就是使用大括号表示对象,在大括号内部声明每个属性和方法的类型。 cons... 4 个月前
  10. 10 TypeScript 的 interface 接口 简介 interface 是对象的模板,可以看作是一种类型约定,中文译为“接口”。使用了某个模板的对象,就拥有了指定的类型结构。 interface Person { firstName: string; ... 2 年前
  11. 11 TypeScript 的 class 类型 简介 类(class)是面向对象编程的基本构件,封装了属性和方法,TypeScript 给予了全面支持。 属性的类型 类的属性可以在顶层声明,也可以在构造方法内部声明。 对于顶层声明的属性,可以在声明时同时给出类型... 1 年前
  12. 12 TypeScript 泛型 简介 有些时候,函数返回值的类型与参数类型是相关的。 function getFirst(arr) { return arr[0]; } 上面示例中,函数 getFirst()总是返回参数数组的第一个成员。参数... 3 年前
  13. 13 TypeScript 的 Enum 类型 Enum 是 TypeScript 新增的一种数据结构和类型,中文译为“枚举”。 简介 实际开发中,经常需要定义一组相关的常量。 const RED = 1; const GREEN = 2; const BLUE... 1 年前
  14. 14 TypeScript 的类型断言 简介 对于没有类型声明的值,TypeScript 会进行类型推断,很多时候得到的结果,未必是开发者想要的。 type T = 'a'|'b'|'c'; let foo = 'a'; let bar:T = foo;... 2 年前
  15. 15 TypeScript 模块 简介 任何包含 import 或 export 语句的文件,就是一个模块(module)。相应地,如果文件不包含 export 语句,就是一个全局的脚本文件。 模块本身就是一个作用域,不属于全局作用域。模块内部的变... 2 年前
  16. 16 TypeScript namespace namespace 是一种将相关代码组织在一起的方式,中文译为“命名空间”。 它出现在 ES 模块诞生之前,作为 TypeScript 自己的模块格式而发明的。但是,自从有了 ES 模块,官方已经不推荐使用 nam... 3 年前
  17. 17 TypeScript 装饰器 简介 装饰器(Decorator)是一种语法结构,用来在定义时修改类(class)的行为。 在语法上,装饰器有如下几个特征。 (1)第一个字符(或者说前缀)是 @,后面是一个表达式。 (2) @后面的表达式,必须是... 9 个月前
  18. 18 装饰器(旧语法) 上一章介绍了装饰器的标准语法,那是在2022年通过成为标准的。但是在此之前,TypeScript 早在2014年就支持装饰器,不过使用的是旧语法。 装饰器的旧语法与标准语法,有相当大的差异。旧语法以后会被淘汰,但是... 3 年前
  19. 19 declare 关键字 简介 declare 关键字用来告诉编译器,某个类型是存在的,可以在当前文件中使用。 它的主要作用,就是让当前文件可以使用其他文件声明的类型。举例来说,自己的脚本使用外部库定义的函数,编译器会因为不知道外部函数的类... 1 年前
  20. 20 d.ts 类型声明文件 简介 单独使用的模块,一般会同时提供一个单独的类型声明文件(declaration file),把本模块的外部接口的所有类型都写在这个文件里面,便于模块使用者了解接口,也便于编译器检查使用者的用法是否正确。 类型声... 1 年前
  21. 21 TypeScript 类型运算符 TypeScript 提供强大的类型运算能力,可以使用各种类型运算符,对已有的类型进行计算,得到新类型。 keyof 运算符 简介 keyof 是一个单目运算符,接受一个对象类型作为参数,返回该对象的所有键名组成的... 4 个月前
  22. 22 TypeScript 的类型映射 简介 映射(mapping)指的是,将一种类型按照映射规则,转换成另一种类型,通常用于对象类型。 举例来说,现有一个类型 A和另一个类型 B。 type A = { foo: number; bar: nu... 3 个月前
  23. 23 TypeScript 类型工具 TypeScript 提供了一些内置的类型工具,用来方便地处理各种类型,以及生成新的类型。 这些类型工具都是语言本身提供的,可以直接使用。 Awaited<Type> Awaited<Type>用来取出 Promi... 1 年前
  24. 24 TypeScript 的注释指令 TypeScript 接受一些注释指令。 所谓“注释指令”,指的是采用 JS 双斜杠注释的形式,向编译器发出的命令。 // @ts-nocheck // @ts-nocheck告诉编译器不对当前脚本进行类型检查,可... 2 年前
  25. 25 tsconfig.json 简介 tsconfig.json是 TypeScript 项目的配置文件,放在项目的根目录。反过来说,如果一个目录里面有 tsconfig.json,TypeScript 就认为这是项目的根目录。 如果项目源码是 ... 2 年前
  26. 26 tsc 命令行编译器 简介 tsc 是 TypeScript 官方的命令行编译器,用来检查代码,并将其编译成 JavaScript 代码。 tsc 默认使用当前目录下的配置文件 tsconfig.json,但也可以接受独立的命令行参数。... 3 年前
  27. 27 TypeScript 的 ES6 类型 Map<K, V> let map2 = new Map(); // Key any, value any let map3 = new Map<string, number>(); // Key string, ... 3 年前
  28. 28 TypeScript 类型缩小 TypeScript 变量的值可以变,但是类型通常是不变的。唯一允许的改变,就是类型缩小,就是将变量值的范围缩得更小。 手动类型缩小 如果一个变量属于联合类型,所以使用时一般需要缩小类型。 第一种方法是使用 if判... 3 年前
  29. 29 TypeScript 项目使用 npm 模块 简介 npm 模块都是 JavaScript 代码。即使模块是用 TypeScript 写的,还是必须编译成 JavaScript 再发布,保证模块可以在没有 TypeScript 的环境运行。 问题就来了,Typ... 3 年前
  30. 30 TypeScript 的 React 支持 JSX 语法 JSX 是 React 库引入的一种语法,可以在 JavaScript 脚本中直接书写 HTML 风格的标签。 TypeScript 支持 JSX 语法,但是必须将脚本后缀名改成 .tsx。 .tsx... 3 年前
  31. 31 类型运算 运算律 改变成员类型的顺序不影响联合类型的结果类型。 type T0 = string | number; type T1 = number | string; 对部分类型成员使用分组运算符不影响联合类型的结果类型... 3 年前