如何解决ts2339类型脚本中的“ TopicMessage”类型不存在属性“令牌”
interface PushPayload {
userId: number
conId?: number
pushLogCodeKey: string
messagePayload: admin.messaging.Message
}
我试图获得令牌
const blah = something.messagePayload.token
但是我得到了错误代码ts(2339)。在firebase管理模块中,assign语句中有一些管道。我的问题和他们之间有联系吗?
下面是界面类型。
interface TokenMessage extends BaseMessage {
token: string;
}
interface Topicmessage extends BaseMessage {
topic: string;
}
interface ConditionMessage extends BaseMessage {
condition: string;
}
export namespace admin.messaging {
type Message = TokenMessage | Topicmessage | ConditionMessage;
...
}
我的打字稿版本是3.9.7,firebase-admin版本是9.2.0
很抱歉让你读我的英语不好。
解决方法
此行代码声明类型<div class="container text-center">
<h1>Mic Recorder to Mp3 Example</h1>
<p>Check your web developer tool console.</p>
<button class="btn btn-primary">Start recording</button>
<ul id="playlist"></ul>
</div>
<div class="container text-center">
<h1>Mic Recorder to Mp3 Example</h1>
<p>Check your web developer tool console.</p>
<button class="btn btn-primary">Start recording</button>
<ul id="playlist"></ul>
</div>
<div class="container text-center">
<h1>Mic Recorder to Mp3 Example</h1>
<p>Check your web developer tool console.</p>
<button class="btn btn-primary">Start recording</button>
<ul id="playlist"></ul>
</div>
可以为任何类型Message
,TokenMessage
或TopicMessage
中的一种。
ConditionMessage
它正在使用TypeScript union type,我建议阅读一下。
由于type Message = TokenMessage | TopicMessage | ConditionMessage;
可以是这些类型中的任何一种,因此不能保证具有Message
属性。仅保证token
具有TokenMessage
属性。如果要假定消息始终是token
,则应在使用该属性之前检查该属性是否存在(或强制转换类型):
TokenMessage
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。