定义兼容性对象数组

T 示意传入的类型,能够为number、string、boolean等传入什么label就是什么类型interface labelValue<T> {    label: T;    value: number;}// 传入number类型let obj: labelValue<number>;export function formatYear (): labelValue<number>[] {    let date = new Date().getFullYear();    let arr: labelValue<number>[];    for (let i = 0; i < date + 10; i++) {        obj = {            label: i,            value: i        }        arr.push(obj)    }    return arr;}// 传入string类型let obj1: labelValue<string>;export function formatHours (): labelValue<string>[] {    let arr: labelValue<string>[];    for (let i = 0; i <= 24 + 10; i++) {        obj1 = {            label: i + 'h',            value: i        }        arr.push(obj1)    }    return arr;}

定义对象型数组

定义

interface ObjectOf<V>{    [_: string]: V } class OrderItem {    uuid: string;    amount: number;    secondaryTotal: number;    total: number;    originalTotal: number;    checked: boolean; }

应用

interface State {    promoList: {        giftCheck: ObjectOf<OrderItem>        freeCheck: Array<OrderItem>    }}