node.js - خطاهای واردات پیشفرض React در پروژه NextJS با TypeScript، esModuleInterop=true
کانفیگ TypeScript من در اپلیکیشن Next.js با این ایمپورت پیش پا افتاده مشکل دارد:
import React from 'react'
با این حال، Next.js به طور پیشفرض React را به صورت جهانی وارد میکند، اما این باعث هشدار دیگری میشود. اضافه کردن import واضحتر به نظر میرسد، پس فرض کنید که من در این مورد سرسخت هستم.
خطا:
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"
]
}
من انتظار داشتم خطا پیکربندی من را در نظر بگیرد. پس چرا این خطا را دریافت میکنم؟
ویرایش:
import * as React from 'react'
خطا نمیدهد، بنابراین میتوانم به جلو حرکت کنم. این پاسخ جزئیات را ارائه میدهد. این هنوز سؤال را باقی میگذارد که چرا واردات پیشفرض کار نمیکند (که به نظر میرسد در جامعه ترجیح داده میشود).