首页 > 解决方案 > Typescript 对象的类型未知,firebase 函数

问题描述

我对用 typescript 编写的 firebase 函数有疑问。

首先我有一些背景信息:

实时数据库的 /tokens ref 的数据结构:

Tokens: [
     TOKENS_ID: {
           token: String
},
]

以下代码给了我编译错误:

export const onBlogPost = functions.database.ref("/blogs/{bid}")
.onCreate((blogData) => {
  console.log(JSON.stringify(blogData.val()));
  admin.database().ref("/tokens").once("value")
      .then((snapshot) => {
        const data = snapshot.val();
        const tokens = Object.values(data).map((value) => {
          console.log(JSON.stringify(value));
          const token = value.token;
          return token;
        });
        return console.log(JSON.stringify(tokens));
      });
});

问题出在.then((snapshot) => {...}零件之内。这部分代码的目标是将数据快照中的所有对象转换为仅包含标记的单个数组。

编译错误发生在具有以下代码的行上:

const token = value.token;

编译错误如下:

src/index.ts(14,29): error TS2571: Object is of type 'unknown'.

对此的正确解决方案是什么,我试图为变量值分配一个类型,map()但这却失败了。

标签: typescriptfirebasefunction

解决方案


强制类型为:

const token: string = value.token;

或者

const token = value.token as string;

推荐阅读