web-dev-qa-db-fra.com

Webpack ne peut pas compiler ts 3.7 (chaînage en option, coalescence nulle)

J'essaie d'utiliser TypeScript 3.7 des fonctionnalités comme le chaînage en option, la coalescence nulle. Mais webpack me donne une erreur lors du transpaling.

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);
``

21
Edgaras Karka

Selon le chargeur que vous utilisez pour transcrire le code, plusieurs options sont disponibles

Pour ts-loader, vous devez vous assurer que la sortie de TypeScript est compréhensible par Webpack. Pour ce faire, définissez target sur ES2018 dans tsconfig.json.

Pour babel-loader, vous devrez vous assurer que babel charge le

  • @babel/plugin-proposal-nullish-coalescing-operator

brancher. Notez que si vous utilisez preset-env, il peut ou non charger ce plugin en fonction de votre targets ou browserlist (c'est-à-dire qu'il ne sera pas chargé si l'env cible prend en charge ces fonctionnalités de langage), auquel cas la seule façon de l'inclure est de la spécifier manuellement dans le tableau plugins dans babel.config.js.

0
aryzing