定义兼容性对象数组
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> }}