簡體   English   中英

類型注釋只能在 TypeScript 文件中使用。 ts(8010)

[英]Type annotations can only be used in TypeScript files. ts(8010)

我正在關注有關為反應原生應用程序設置 IAP(應用內購買)的教程(鏈接到下面的教程)。 在編寫代碼時,vs 代碼警告我“類型注釋只能在 TypeScript 文件中使用”,這在代碼的“購買:InAppPurchase | SubscriptionPurchase”和“錯誤:PurchaseError”部分下發出警告。 在研究這個時,我能找到的最流行的解決方案(在 Stack Overflow 或 elswhere 上)是簡單地禁用“TypeScript 和 JavaScript 語言功能”。

我覺得這不能解決問題,但我不確定。 禁用它會解決問題並讓我的應用程序按預期運行嗎? 還是有另一種方法可以在我的 javascript 文件中包含此 typescript 語法?

    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

如果您無論如何都在編譯代碼,您可以將文件更改為 a.ts 文件並在any地方放置類型注釋(如果您不知道或不想創建類型,則可以使用)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM