Как добавить значение по умолчанию в параметры функции в машинописном тексте? - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь добавить последнюю часть шрифта в свою функцию, но машинописный текст жаловался на все, что я делаю. Я знаю, что есть способ решить эту проблему, и мне нужна ваша помощь.

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

Это моя функция, и мне нужно добавить значение по умолчанию к property, в данном случае значение по умолчанию - " ID ».

Ответы [ 2 ]

3 голосов
/ 06 мая 2020

Передача «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();
};

0 голосов
/ 06 мая 2020

В целом ответ на поставленный вопрос прост - формат параметра по умолчанию myParam = "default value", например,

function myFunc(param1 = "default value") {
    //...
}

Вы можете узнать больше о параметрах по умолчанию в Typescript здесь: https://www.typescriptlang.org/docs/handbook/functions.html#optional -and-default-parameters

ОДНАКО: конкретный сценарий OP включает параметр keyof , который требует особой обработки. См. ответ Симона Брюно по этому поводу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...