我正在关注为React Native应用设置IAP(应用内购买)的教程(下面的教程链接)。在编写代码时,vs代码警告我“类型注释只能在TypeScript文件中使用”,这在代码的“购买:InAppPurchase | SubscriptionPurchase”和“错误:PurchaseError”部分下发出警告。研究此问题时,我发现(在Stack Overflow或elswhere上)最受欢迎的解决方案是仅禁用“ TypeScript和JavaScript语言功能”。
我不觉得这可以解决问题,但我不确定。禁用此功能是否可以解决问题,并让我的应用按预期运行?还是有另一种方法可以在我的javascript文件中包含此打字稿语法?
useEffect(() => {
purchaseUpdateSubscription = RNIap.purchaseUpdatedListener(
async (purchase: InAppPurchase | SubscriptionPurchase) => {
const receipt = purchase.transactionReceipt;
if (receipt) {
try {
if (Platform.os === 'ios') {
RNIap.finishTransactionIOS(purchase.transactionReceipt)
}
await RNIap.finishTransaction(purchase)
await processNewPurchase(purchase)
} catch (ackErr) {
console.log('ackErr', ackErr)
}
}
}
);
purchaseErrorSubscription = RNIap.purchaseErrorListener(
(error: PurchaseError) => {
console.log('purchaseErrorListener', error)
}
);
return (() => {
if (purchaseUpdateSubscription) {
purchaseUpdateSubscription.remove()
purchaseUpdateSubscription = null;
}
if (purchaseErrorSubscription) {
purchaseErrorSubscription.remove()
purchaseUpdateSubscription = null;
}
})
}, [])
链接到教程:https://medium.com/@rossbulat/react-native-subscriptions-with-in-app-purchases-setup-fdaf3863e07f
如果仍然要编译代码,则可以将文件更改为.ts文件,并在所有位置放置类型注释(如果您不知道或不想创建类型,则可以输入any
。