Webpack无法编译ts 3.7(可选链接,Nullish合并)

我尝试使用typescript 3.7功能,例如“可选链接”,“空位合并”。但是webpack在传送时给我一个错误。

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

dianasry 回答:Webpack无法编译ts 3.7(可选链接,Nullish合并)

我在esnext文件中将目标:es2018更改为tsconfig.json。现在可以了。

,

根据您使用的是哪个加载器来对代码进行插值,有几个选项可用

对于 ts-loader ,您需要确保Webpack可以理解打字稿的输出。可以通过在target中将ES2018设置为tsconfig.json来实现。

对于 babel-loader ,您需要确保babel加载

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

插件。 请注意,如果您使用的是preset-env,则取决于您的targetsbrowserlist,它可能加载也可能不加载这些插件(即,如果目标环境支持这些语言功能),在这种情况下,要确保将其包含在内,唯一的方法是在plugins的{​​{1}}数组中手动​​指定它们,

babel.config.js
,

如果您使用的是vs代码,则可能应该更改本地打字稿版本与代码的使用。

What TypeScript version is Visual Studio Code using? How to update it?

,

应用aryzing的解决方案后,

  • 我还是遇到了问题;
    • 而且我使用 yarn install 来表示包;

然后npm install为我修复了它。

本文链接:https://www.f2er.com/3119548.html

大家都在问