Există o modalitate de a utiliza –esModuleInterop în tsconfig, în loc să fie un indicator? (Programare, Typescript)

Ilja a intrebat.

Typescript v 2.7 a lansat un steguleț foarte frumos numit --esModuleInterop https://www.typescriptlang.org/docs/handbook/compiler-options.html, încerc să-mi dau seama dacă există o modalitate de a-l utiliza cu tsconfig.json deoarece în prezent nu pare să fie documentat: http://www.typescriptlang.org/docs/handbook/tsconfig-json.html

Cu excepția cazului în care funcționează cumva cu module?

Principalul caz de utilizare pe care vreau să îl obțin este să pot importa lucruri de genul acesta

import React from "react"

spre deosebire de

import * as React from "react"

Și să fac acest lucru din tsconfig-ul meu, dacă este posibil

2 răspunsuri
kingdaro

Da, faceți "esModuleInterop": true în tsconfig.json. Pentru fiecare opțiune de steag care poate fi transmisă la CLI, același lucru poate fi făcut de obicei în acest fel în fișierul de configurare. Efectuați tsc --init în linia de comandă generează un tsconfig plin de comentarii care explică toate opțiunile disponibile.


EDIT: Am aflat că comportamentul esModuleInterop depinde de ceea ce este setat la module.

Dacă aveți "module": "commonjs", trebuie doar să activați "esModuleInterop": true.

Dacă aveți "module": "es2015" sau "module": "esnext", trebuie să activați și "allowSyntheticDefaultImports": true pentru a importa modulele CommonJS (cum ar fi React) în mod implicit.

Comentarii

  • Pentru mine funcționează folosind combinația de "module: "es7" și "moduleResolution": "node" alături de steguleț. Există probleme cu @types/react nefiind încă actualizat pentru acest lucru. –  > Por Ilja.
atul parate

Și eu m-am confruntat cu aceeași problemă,

  • Această problemă este specifică versiunii typescript
  • Efectuați pașii de mai jos pentru a o elimina ( A funcționat pentru mine)
  1. În proiectul dvs., în fișierul package.json – verificați dacă aveți typescript sub dependenciesdevDependencies{„typescript”: „^2.5.2”}
  2. verificați versiunea instalată a typescript-ului pe sistemul dvs. prin tastarea comenzii tsc -version în terminal
  • aceasta va afișa versiunea instalată a typescript la nivel global
  • versiunea o/p – 2.9.1
  1. Schimbați numărul de versiune din interiorul fișierului package.json cu versiunea instalată pe sistemul dumneavoastră.

devDependencies{„typescript”: „^2.9.1”}

Sper că va funcționa!!!!!!!!!!!!

Comentarii

  • Mulțumesc! Aceasta a fost problema. npm i typescript --save a funcționat pentru mine –  > Por Miguel Mota.