因为研究 Pi Agent 源代码,发现都是 TypeScript 编写的,因此找了阮一峰的TypeScript教程熟悉一下 TypeSCript 语法。
简介
TypeScript(简称 TS)是微软公司开发的一种基于 JavaScript (简称 JS)语言的编程语言。
TypeScript 对 JavaScript 添加的最主要部分,就是一个独立的类型系统。
基本用法
any类型
类型系统
bigint 类型包含所有的大整数。
1 | const x:bigint = 123n; |
所谓“包装对象”,指的是这些值在需要时,会自动产生的对象。
由于包装对象的存在,导致每一个原始类型的值都有包装对象和字面量两种情况。
联合类型(union types)指的是多个类型组成的一个新类型,使用符号|表示。
联合类型A|B表示,任何一个类型只要属于A或B,就属于联合类型A|B。
1 | let x:string|number; |
数组
元组
元组(tuple)是 TypeScript 特有的数据类型,JavaScript 没有单独区分这种类型。它表示成员类型可以自由设置的数组,即数组的各个成员的类型可以不同。
元组成员的类型可以添加问号后缀(?),表示该成员是可选的。
1 | let a:[number, number?] = [1]; |
扩展运算符(…)将数组(注意,不是元组)转换成一个逗号分隔的序列,这时 TypeScript 会认为这个序列的成员数量是不确定的,因为数组的成员数量是不确定的。
1 | const arr:[number, number] = [1, 2]; |
symbol类型
Symbol 是 ES2015 新引入的一种原始类型的值。它类似于字符串,但是每一个 Symbol 值都是独一无二的,与其他任何值都不相等。
1 | let x:symbol = Symbol(); |
函数
可选参数:
如果函数的某个参数可以省略,则在参数名后面加问号表示。
1 | function f(x?:number) { |
函数的可选参数只能在参数列表的尾部,跟在必选参数的后面。
rest 参数表示函数剩余的所有参数,它可以是数组(剩余参数类型相同),也可能是元组(剩余参数类型不同)。
1 | // rest 参数为数组 |
对象
除了原始类型,对象是 JavaScript 最基本的数据结构。
interface
参考链接
- TypeScript 教程,by 阮一峰.