首页 > 解决方案 > 如何在打字稿的函数参数中添加默认值?

问题描述

我试图在我的函数中添加最后一个类型,但打字稿抱怨我做什么。我知道有办法解决它,需要你的帮助。

export const getPropertiesArray = <T extends object, K extends keyof T>(data: T[], property: K) => {
    return data.map(item => item[property]).sort();
};

这是我的函数,我需要添加一个默认值property,在这种情况下,默认值为“ID”。

标签: javascripttypescripttypes

解决方案


传递默认“ID”不可分配给object.
实际上,您应该假设 ID 始终是您的对象的键。

这是一种解决方法:

// T extends { ID: any } - You may replace any by your ID type
export const getPropertiesArray = <T extends { ID: any }>(data: T[], property: keyof T = "ID") => {
    return data.map(item => item[property]).sort();
};


推荐阅读