[typescript] Webpack에서 ts 3.7을 컴파일 할 수 없음 (선택적 체인, Nullish Coalescing)

typescript 3.7Optional Chaining, Nullish Coalescing과 같은 기능 을 사용하려고합니다 . 그러나 webpacktranspaling하는 동안 오류가 발생합니다.

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



답변

파일 에서 target : esnext을 ( es2018를) 변경했습니다 tsconfig.json. 이제 작동합니다.


답변

코드를 변환하는 데 사용하는 로더에 따라 몇 가지 옵션을 사용할 수 있습니다

의 경우 ts-loaderWebpack에서 typescript의 출력을 이해할 수 있어야합니다. in 로 설정 target하면 ES2018됩니다 tsconfig.json.

의 경우 babel-loaderbabel이로드되도록해야합니다.

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

플러그인. 를 사용하는 경우 preset-env또는에 따라이 플러그인을로드 targets하거나 browserlist로드하지 않을 수 있습니다 (예 : 대상 환경에서 이러한 언어 기능을 지원하는 경우로드되지 않음).이 경우 포함을 보장 할 수있는 유일한 방법입니다 수동에 의해 지정 인 plugins에 배열 babel.config.js,

  plugins: [
    '@babel/plugin-proposal-nullish-coalescing-operator',
  ],


답변

vs 코드를 사용하는 경우 로컬 유형 스크립트 버전과 코드 사용을 변경해야합니다.

Visual Studio Code는 어떤 TypeScript 버전을 사용합니까? 업데이트하는 방법?


답변