ts类型声明全总结

基本类型

    // 基本类型

    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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值