Тип возврата на основе типа ввода - PullRequest
0 голосов
/ 15 июня 2019

Я знаю, что есть похожие вопросы, но я их не понимаю.

Как настроить типы на inputType = outputType?

public addReadableTime(message: PublicMsg | PrivateMsg): PublicMsg | PrivateMsg {
   message.displayTime = moment(message.lastModified).format('HH:mm');
   return message;
}

// ...

const publicMsg = this.addReadableTime(publicMsg);

TS2322: Тип 'PublicMsg |PrivateMsg 'нельзя назначить типу' PublicMsg '.Свойство publicChannelMessageId отсутствует в типе PrivateMsg, но требуется в типе PublicMsg.

1 Ответ

2 голосов
/ 15 июня 2019

Похоже, вам нужен универсальный метод с ограничением типа:

public addReadableTime<T extends PublicMsg | PrivateMsg>(message: T): T {
   message.displayTime = moment(message.lastModified).format('HH:mm');
   return message;
}

// ...
const publicMsg2 = this.addReadableTime(publicMsg);
...