最后更新时间:2023-05-18 13-52-26
- 官方文档
- github 中文仓库指南
- 中文文档
npm install -g typescript
ts 类型
基本类型
boolean、number、string、void(表示没有任何返回值的函数)、null、undefined
- 声明一个 void 类型的变量没有什么用,因为你只能将它赋值为 undefined 和 null
- undefined 和 null 是所有类型的子类型
- symbol 表示唯一的、不可变的值,通常用作对象的属性名。
复合类型
array、tuple、object、enum、any、unknown、never
- unknown 类型,表示一个值的类型是未知 与 any 类型不同,unknown 类型是类型安全的。
- unknown 与 any 的区别
any:表示任意类型,使用any可以跳过类型检查
unknown:表示不确定的类型, 需要进行类型检查
高级类型
union、intersection、type、interface、class、function
interface
- 定义接口的关键字,通过定义接口,规范数据类型,函数签名等形式
interface FormState {
username: string;
password: string;
remember: boolean;
}
class
class Product {
name: string;
price: number;
}
enum
- 一种用于定义一组常量的数据类型,这些成员的值默认从 0 开始自动递增,也可以手动指定值
enum Color {
Red,
Green,
Blue,
}
enum Api {
ACCOUNT_INFO = '/account/getAccountInfo',
SESSION_TIMEOUT = '/user/sessionTimeout',
TOKEN_EXPIRED = '/user/tokenExpired',
}
元组
- 数组合并了相同类型的对象,而元组(Tuple)合并了不同类型的对象
泛型
- 泛型(Generics)是指在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性。
其他类型
Promise 类型
- Promise 表示一个异步操作,该操作最终会产生类型为 T 的值。T 是一个类型参数,表示异步操作返回的值的类型。
function fetchData(): Promise<string> {
return new Promise((resolve, reject) => {
});
}
& 交叉类型
- 交叉类型的特点是,它将多个类型的成员合并到一个类型中
interface Dog {
breed: string;
bark(): void;
}
interface Cat {
breed: string;
meow(): void;
}
type DogCat = Dog & Cat;
const pet: DogCat = {
breed: "Mixed",
bark() {
console.log("Woof!");
},
meow() {
console.log("Meow!");
},
};
type
- 创建类型别名的关键字 类型别名允许你为一个类型起一个新的名字
interface Dog {
breed: string;
bark(): void;
}
interface Cat {
breed: string;
meow(): void;
}
type DogCat = Dog & Cat;
as 运算符
- 类型断言运算符,用于将一个表达式的类型指定为特定的类型
| 运算符
- 联合类型运算符
- 当一个变量被设置为联合类型时候,只能访问联合类型的所有类型里共有的属性或方法
函数
函数表达式