我有以下功能我试图在不使用any
的情况下输入。
export function byMostRecent(arr: any[]) {
return [...arr].sort((a,b) => {
return new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime();
})
}
我不知道怎么说,"参数必须包含createdAt
字段"。
答案 0 :(得分:3)
你应该使用一个接口(或者我将在匿名类型下面使用)和泛型来约束参数类型和从参数到结果的流类型信息:
export function byMostRecent<T extends { createdAt: string|number|Date }>(arr: T[]):T[] {
return [...arr].sort((a,b) => {
return new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime();
})
}
答案 1 :(得分:0)
您可以使用createdAt
类型:
interface Dates {
createdAt: string|number|Date
}
export function byMostRecent(arr: Dates[]) {
return [...arr].sort((a,b) => {
return new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime();
})
}