基本类型
// 基本类型
num: number;
str: string;
bool: boolean;
任意类型
// 任意类型
any: any;
// 未知类型
value: unknown; // 比any更安全的类型,需要类型检查后才能使用
空类型
// 空类型
nothing: null; // 只能赋值为null
missing: undefined; // 只能赋值为undefined
never: never; // 永不存在的值的类型,如抛出异常的函数返回类型
对象类型
// 对象
obj: object;
obj1: Object;
// 索引签名, 具体类型的对象
obj2: { [key: string]: number };
obj3: { [key: string]: any }; // 任意字符串键的对象
方法类型
// 方法
fn: () => void;
fn1: Function;
fn2: (params: number) => void;
fn3: (params: number) => number;
数组类型
// 数组
arr: number[];
arr0: Array<number>;
arr1: Array<string>;
arr2: Array<{ [key: string]: number }>;
元祖类型
// 元组
tuple: [string, number];
tuple1: [string, number, boolean];
tuple2: [string, number, { [key: string]: number }];
联合类型
// 联合类型
union: string | number;
union1: string | number | boolean;
union2: { [key: string]: number } | Array<{ [key: string]: number }>;
direction: 'left' | 'right' | 'up' | 'down'; // 只能是这四个字符串之一
count: 1 | 2 | 3; // 只能是1、2或3
交叉类型
// 交叉类型
intersection: { a: string } & { b: number };
intersection1: { a: string } & { b: number } & { c: boolean };
intersection2: { a: string } & { b: number } & { c: { [key: string]: number } };
类型别名Type
// 类型别名
type Point = { x: number; y: number };
position: Point; // 使用自定义类型
接口
// 接口
interface Person { name: string; age: number; }
user: Person; // 使用接口定义的类型
泛型
// 泛型
value: T; // 泛型类型,T由使用时确定
container: Container<string>; // 使用泛型的类型
条件类型
// 条件类型
type ExtractType<T> = T extends string ? string : number;
result: ExtractType<string>; // 条件类型,这里为string
映射
// 映射类型
type Readonly<T> = { readonly [P in keyof T]: T[P] };
readonlyObj: Readonly<{ a: number; b: string }>; // 所有属性都是只读的
枚举
// 枚举
enum: TestEnum;
表示符
readonly id: number; // 只读属性,初始化后不能修改
// 可选
can ?: string;
// 一定有
yes!: string;
直接声明
// 直接声明, 一般用于子节点继承父节点的 | 属性类型时, 有确定类型的声明
declare static st: number;
declare hello: string;
4796

被折叠的 条评论
为什么被折叠?



