首页 > 解决方案 > 类型注解只能在 TypeScript 文件中使用。ts(8010)

问题描述

我正在关注有关为反应原生应用程序设置 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

标签: javascripttypescriptreact-nativein-app-purchase

解决方案


如果您仍然在编译代码,您可以将文件更改为 .ts 文件并在任何地方放置类型注释(any如果您不知道或不想创建类型)。


推荐阅读