javascript - Typannoteringar kan endast användas i TypeScript-filer. ts(8010)


Jag följer en handledning (länk till handledningen nedan) om hur man ställer in en IAP (In-App-Purchase) för en React Native-app. När jag skriver koden varnar VS Code mig med att "Type Annotations can only be used in TypeScript files", detta varnade under delarna "purchase: InAppPurchase | SubscriptionPurchase" och "error: PurchaseError" i koden. När jag tittade närmare på detta var den mest populära lösningen jag kunde hitta (på Stack Overflow eller någon annanstans) helt enkelt att inaktivera 'TypeScript and JavaScript Language Features'.

Jag tycker inte att det löser problemet, men jag är inte säker. Skulle avaktivering av detta lösa problemet och låta min app köras som förväntat? Eller finns det ett annat sätt att inkludera denna TypeScript-syntax i min JavaScript-fil?

    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;
        }
    })
}, [])

länk till handledning: https://medium.com/@rossbulat/react-native-subscriptions-with-in-app-purchases-setup-fdaf3863e07f

Svar #1

Om du ändå kompilerar koden, kan du ändra filen till en .ts-fil och sätta typannoteringar överallt (any om du inte vet eller inte vill göra en typ).