现在,我有一个返回Promise Message | Message[]
的方法。我通过以下方式将类型转换为Message
:
message.say('meow')
.then((msg: Message|Message[]) => {
(msg as Message).react('meow');
})
.catch(console.error);
但是,我不确定这是一个好习惯还是应该以其他方式进行。
答案 0 :(得分:0)
由于Message
是一类,您可以使用msg
测试instanceof
的类型。
message.say('meow')
.then((msg: Message|Message[]) => {
if (msg instanceof Message)
msg.react('meow');
else
msg.forEach(x => x.react('meow'));
})
.catch(console.error);
这更安全,并且由于if
语句的每个分支缩小了msg
的类型,大多数IDE将提供有用的代码完成。