У меня есть следующее определение функции TypeScript:
export const handler = async (): Promise<LambdaOutput | DCDErrorResponse> => {
const result1: Promise<LambdaOutput> = await func1();
const result2: Promise<DCDErrorResponse> = await func2();
return someMagicalCondition() ? result1 : result2;
};
Другой фрагмент кода импортирует handler()
и выполняет его:
const result = await handler();
console.log(result.upload); // <-- fail to access attributes, available in the LambdaOutput type but not in the other possible return type of the Promise
Проблема заключается в том, что всякий раз, когда я пытаюсь получить доступ В последнем примере result.upload (свойство доступно только в LambdaOutput, но не в DCDErrorResponse), компилятор TypeScript жалуется на следующее:
TS2339: свойство «upload» не существует для типа «LambdaOutput» | DCDErrorResponse. Свойство upload не существует для типа DCDErrorResponse.