TS1259+TS6142: Module can only be default-imported using the 'esModuleInterop
Author:zhoulujun Date:
今天发现代码
import React, { Component } from "react";
提示eslint 报错
网上搜了一下,说建议
import * as React
class Index extends React.Component<PageProps,PageState> {}
但是,这肯定不对劲
TS1259: '.....' Module can only be default-imported using the 'esModuleInterop' flag
类似的情况还有:https://github.com/SoftwareBrothers/adminjs/issues/233
This module is declared with using 'export =', and can only be used with a default import when using the 'esModuleInterop' flag.
其实值需要修改:
{
"compilerOptions": {
"esModuleInterop":true,
"jsx": "react"
},}
其中 jsx react 是解决 TS6142:but '--jsx' is not set 问题的关键
具体参看:https://stackoverflow.com/questions/50432556/cannot-use-jsx-unless-the-jsx-flag-is-provided
还有就是 react Component 类型声明报错
class Index extends Component<PageProps,PageState> {}
报语法错误
这个是bable 配置问题
// babel-preset-taro 更多选项和默认值:
// https://github.com/NervJS/taro/blob/next/packages/babel-preset-taro/README.md
module.exports = {
presets: [
['taro', {
framework: 'react',
ts: true
}]
]
}
需要 配置ts 为true
转载本站文章《TS1259+TS6142: Module can only be default-imported using the 'esModuleInterop》,
请注明出处:https://www.zhoulujun.cn/html/tools/Bundler/webpack/2021_1110_8698.html