dwj*_*ton 6 firebase typescript google-cloud-firestore
我如何使用 Firebase 和我自己的 Typescript 接口?
IE。我在这里有一个函数,我将需要完整的Payment对象(不仅仅是增量),所以我通过DocumentReference对象获得了它。
function doSomethingWithPayment(payment: Payment) {
console.log(payment.amount);
}
exports.resolveStripeCharge = functions.firestore.document('/payments/{paymentId}')
.onWrite((change : Change <DocumentSnapshot>) => {
change.after.ref.get().then((doc: DocumentSnapshot )=> {
const payment : Payment = doc.data(); // tslint warning here.
doSomethingWithPayment(payment);
})
[ts]
Type 'DocumentData' is not assignable to type 'Payment'.
Property 'amount' is missing in type 'DocumentData'.
const payment: Payment
Run Code Online (Sandbox Code Playgroud)
我知道返回的对象不一定符合接口 - 但无论如何 - 我应该在这里做什么 - 如果我想强制输入?
我只是使用:
const payment : Payment = <Payment>doc.data();
Run Code Online (Sandbox Code Playgroud)
或者有更好的解决方案吗?
您拥有的解决方案只是将
doc.data(). 这不是解决方案,而是一种解决方法。因为,这样做您可能会遇到运行时错误。
所以,我的建议是,只需使用:
const payment = doc.data()
如果是const,将自动强制输入。
或者
您可以编写一个将
DocumentData类型转换为Payment类型的函数。通过添加缺少的参数。
| 归档时间: |
|
| 查看次数: |
8905 次 |
| 最近记录: |