Bad*_*dgy 3 javascript firebase typescript google-cloud-firestore
目前正在清理一些代码并用打字稿重写很多内容。我发现让我好奇的是以下代码:
const userRef = firestore.collection('users').doc(userId);
const userDoc = await userRef.get();
if (userDoc.exists) {
const userData = userDoc.data();
const currentUserBalance = userData.balance ? userData.balance : 0;
}
Run Code Online (Sandbox Code Playgroud)
现在 Typescript 会抱怨这userData是可能的,但是当我检查我的块中上面存在的文档时,undefined文档不能是未定义的。只是好奇为什么会发生这种情况以及我这里是否有逻辑问题。.data()if
existsTypeScript 对和之间的关系一无所知data()。它只知道 的签名data()表示返回值可以是 DocumentSnapshot 或未定义。因此,您必须通过以下任一方式满足编译器的要求:
const data = userDoc.data()
if (data) {
// In this block, data is now typed as just DocumentData,
// undefined is no longer an option.
}
Run Code Online (Sandbox Code Playgroud)
!:const data = userDoc.data()! // data is now typed as just DocumentData
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2621 次 |
| 最近记录: |