我知道有类似的问题,但我不明白。
如何将类型配置为拥有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”类型中是必需的。
发布于 2019-06-15 04:16:22
似乎您需要的是一个具有类型约束的泛型方法:
public addReadableTime<T extends PublicMsg | PrivateMsg>(message: T): T {
message.displayTime = moment(message.lastModified).format('HH:mm');
return message;
}
// ...
const publicMsg2 = this.addReadableTime(publicMsg);https://stackoverflow.com/questions/56607262
复制相似问题