javascript - Ayrıştırma hatası alınıyor: Beklenmeyen token, beklenen ";"
Büyük bir React + TypeScript projesi üzerinde çalışıyorum.
Diğer meslektaşlarımın yerel makinelerinde iyi çalışıyor, ama benimkinde aşağıdaki hatayı alıyorum:
Line 1: Parsing error: Unexpected token, expected ";"
aşağıda görebileceğiniz gibi:
İşte kaynak kodu:
export type LoadOfferType = typeof import("../offers/defaultOffer");
export const loadOffer = async (): Promise<LoadOfferType> => {
const offerName = process.env.NODE_ENV === "development" ? process.env.REACT_APP_FALLBACK_SITE : "defaultOffer";
/**
* We use a switch statement instead of ane xpression for the offer path
* because Webpack throws a critical dependency error when using paths
* that are not explicitly defined.
*/
switch (offerName) {
case "mysite.com":
return await import("../offers/mysite.com");
default:
return await import("../offers/defaultOffer");
}
};
Depoyu klonladıktan sonra çalıştırdığım komutlar şunlardı:
yarn install
yarn start
İşte sistemim hakkında bazı bilgiler:
node -v
v12.13.0
npm -v
6.12.0
yarn -v
1.19.1
Bunu düzeltmenin bir yolu hakkında bir fikrin var mı?
Teşekkürler!
Cevap #1
Birkaç şey olabiliyor. ts yapılandırması ve ayrıştırıcı yapılandırması ile ts.config.js dosyası oluşturdunuz mu, şuna benzer bir şey:
export const typescriptConfig = {
extends: ['plugin:@typescript-eslint/eslint-
recommended'],
overrides: [
{
parser: '@typescript-eslint/parser',
extends: [
'plugin:@typescript-eslint/recommended',
'prettier/@typescript-eslint',
'plugin:import/typescript',
],
plugins: ['@typescript-eslint'],
files: ['*.ts', '*.tsx'],
rules: {},
},
],
}
Create React App varsayılan olarak ESLint kullanır. Ancak, ESLint varsayılan olarak TypeScript'i çözümleyemez. İsterseniz, @typescript-eslint/parser kullanmayı düşünebilirsiniz.
Bu, temel babel-eslint ayrıştırıcısının herhangi bir yapılandırma olmadan doğru çalışmıyor olabileceği anlamına geliyor. ESLint farklı dosyalara farklı ayrıştırıcılar uygulamıyor, bu yüzden babel-eslint bir hata fırlatıyor olabilir.
Yapılandırma dosyanızın projenin kök dizininde oluşturulduğundan emin olun. Ben bununla başlardım.
Cevap #2
Kesinlikle eski bir TypeScript sürümünü kullanıyorsunuz. Söz diziminiz tamamen geçerli.
Test edildi
Yerel olarak yapılan örnek test.

