添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
TypeScriptで TS1192: Module '"./node_modules/@types/react/index"' has no default export. というエラーが出る
以下のようなimport文で TypeScript のエラーが起きた。
code:tsx
import React, {Component, Fragment} from "react"
export default class Sample extends Component { /*中略*/ }
React の型定義にdefault exportが無いため起きているエラーらしい。
TS1192: Module '"./node_modules/@types/react/index"' has no default export.
検索すると、解決するには以下のようにimport文を書き換えるとよいらしい。
code:tsx
import * as React from "react"
export default class Sample extends React.Component { /*中略*/ }
ところが、このような書き換えをあちこちでやるのは面倒臭い。
コンパイラ側で何かオプションはないかと調べていたところ、tsconfig.jsonの "compilerOptions": {} "allowSyntheticDefaultImports": true "esModuleInterop": true を追加すればよいことが分かった
code:tsconfig.json
{
"compilerOptions": {
"declaration": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"module": "es6",
"moduleResolution": "node",
"sourceMap": true,
"target": "es5",
"jsx": "react",
"allowSyntheticDefaultImports": true, // ここを追加した
"esModuleInterop": true // ここを追加した
},
"exclude": [
"**/*.spec.ts",
"node_modules",
"vendor",
"public"
],
"compileOnSave": false,
}