Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Опциональные поля в TypeScript?

Артемий В Ученик (104), на голосовании 5 месяцев назад
У меня есть некая функция
 async function anyFunc(anyArgs: any) {
}
В эту функцию, например, мне нужно передавать обязательное поле userId и опциональные поля message, key. Если поля message и key не указаны, то при обращении к ним в функции будет возвращен undefined. Через интерфейсы долго, ибо в них нужно заполнить все поля без исключений, да и выглядит колхозно. Так вот, как это можно нормально реализовать наподобие интерфейсов, ведь параметры, которые я буду передавать в эту функцию, будут использоваться в нескольких других?
Голосование за лучший ответ
Алексей Бабаев Гуру (4514) 6 месяцев назад
Interface AnyArgs {
name: string;
message ?: string;
key ?: string;
}

anyFunc(anyArgs: AnyArgs){
if ( !anyArgs.message || !anyArgs.key){
console.log('только имя')
}
}

Если я правильно понял вопрос
Алексей БабаевГуру (4514) 6 месяцев назад
Или

Interface AnyArgs {
name: string;
message: string;
key : string;
}

Func(args: string | AnyArgs){
if (typeof args== 'string') {
// Только строка
}
else {
// Структура}
}
Похожие вопросы