Staram się korzystać typescript 3.7
z takich funkcji, jak Opcjonalne łączenie, Nullish Coalescing. Ale webpack
powoduje błąd podczas transpozycji.
app: Module parse failed: Unexpected token (50:40)
app: File was processed with these loaders:
app: * ../../../node_modules/ts-loader/index.js
app: You may need an additional loader to handle the result of these loaders.
app: | export const Layout = (props) => {
app: | const regionsResults = useQuery(regionsQuery, { fetchPolicy: 'cache-first' });
app: > const regions = regionsResults.data?.regions ?? [];
app: | const userItem = useQuery(usersProfileQuery, { fetchPolicy: 'cache-first' });
app: | const handleOnClick = (selected) => props.history.push(selected.key);
``
typescript
webpack
ts-loader
Edgaras Karka
źródło
źródło
packages.json
plik?Odpowiedzi:
Zmieniłem cel:
esnext
naes2018
wtsconfig.json
pliku. Teraz działa.źródło
"foo".matchAll(/o+/g)
ponieważ jest to funkcja ES2020.W zależności od tego, którego modułu ładującego używasz do tłumaczenia kodu, dostępnych jest kilka opcji
Dla
ts-loader
, trzeba upewnić się, że wyjście z maszynopisu jest zrozumiałe Webpack. Można to osiągnąć przez ustawienietarget
doES2018
wtsconfig.json
.Dla
babel-loader
musisz zrobić ładunki pewien Babel z@babel/plugin-proposal-nullish-coalescing-operator
podłącz. Pamiętaj, że jeśli używasz
preset-env
, to może ładować tę wtyczkę w zależności od twojejtargets
lubbrowserlist
(tzn. Nie zostanie załadowana, jeśli docelowa env obsługuje te funkcje językowe), w takim przypadku jedynym sposobem na zagwarantowanie jej włączenia polega na ręcznym określeniu go wplugins
tablicy wbabel.config.js
,źródło
Jeśli używasz vs kodu, prawdopodobnie powinieneś zmienić wersję lokalnego maszynopisu na użycie kodu.
Jakiej wersji TypeScript używa Visual Studio Code? Jak to zaktualizować?
źródło