Моя конфигурация TypeScript в моем приложении Next. js не устраивает этот тривиальный импорт:
import React from 'react'
Конечно, Next. js импортирует React по умолчанию в глобальный, но это приводит к другому предупреждение. Добавление импорта кажется более ясным, поэтому предположим, что я упрямый в этом вопросе.
Ошибка:
TS1259: Module '"~/my-project/node_modules/@types/react/index"' can only be default-imported using the 'esModuleInterop' flag index.d.ts(65, 1): This module is declared with using 'export =', and can only be used with a default import when using the 'esModuleInterop' flag.
Но у меня уже есть esModuleInterop: true
:
tsconfig. json
"compilerOptions": {
"target": "es5",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"noEmit": true,
"esModuleInterop": true, // <==================== Right here
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve"
},
"exclude": [
"node_modules"
],
"include": [
"next-env.d.ts",
"typings/**/*.d.ts",
"**/*.ts",
"**/*.tsx"
]
}
Я ожидал, что ошибка будет учитывать мою конфигурацию. Итак, почему я получаю эту ошибку?
Edit:
import * as React from 'react'
не вызывает ошибки, поэтому я могу двигаться дальше. Этот ответ содержит подробности. При этом остается вопрос, почему импорт по умолчанию не работает (что, по-видимому, является предпочтительным в сообществе).