我看起来很简单。我需要通过FCM发送有效负载,并且正在使用打字稿来组装数据:
let msg;
switch(entity){
case "dog" : {
msg = {name : theName, paws : String(after.paws)}
break;
}
default: {
msg = {name : theName, headType : String(after.headType)}
}
}
const payload = {
data: msg
};
const response = await admin.messaging().sendToDevice(tokens, payload); // error here
编译器一直坚持认为msg
具有三个字段,无论哪种情况,其中一个都将是未定义的(无论是爪子还是headType),并且FCM有效载荷不允许未定义。我只想组装一个愚蠢的json,以在不重复代码的情况下发送给客户端。我想念一个秘密吗?
答案 0 :(得分:2)
您可以定义type
中的msg
。您可以像这样:
let msg: any;
OR
let msg: {name: string, paws?: string, headType?: string}
在应用程序中拥有模型的最佳方法,以便保持一致性。您可以按以下方式创建interface
Message
:
message.interface.ts
export interface Message {
name: string,
paws?: string,
headType?: string
}
然后可以将msg变量定义为:
let msg: Message;