React CSS模块导入与打字稿不兼容

时间:2019-11-07 09:19:21

标签: reactjs typescript webpack css-modules

我想在我的React应用程序中使用CSS模块。我安装了“ typings-for-css-modules-loader” nuget软件包,并在webpack.config.js中进行配置

test: /\.css$/,
use: [
    'style-loader',
    '@teamsupercell/typings-for-css-modules-loader',
    {
        loader: "css-loader",
        options: {
            modules: true,
        }
    }
]

文件styles.css.d.ts生成并如下所示:

export interface IStylesCss {
  x: string;
}

export const locals: IStylesCss;
export default locals;

我正在使用在webpack.config.js中配置的awesome-typescript-loader,如下所示:

{
    test: /\.tsx?$/,
    use:
    {
        loader: "awesome-typescript-loader"
    }
},

这是问题描述:

如果我由于编译错误而无法使用import * as styles from './styles.css'; + className={styles.x},则在类型...上不存在属性'x'。

className={styles.default.x}也不起作用,因为未定义默认值。

默认导入import styles from './styles.css'; + className={styles.x}无效,同样,默认值未定义。

import * as styles from './styles.css'; + className={(styles as any).x} 正常工作,但是我没有进行强类型输入,对我来说这不是正确的解决方案。

1 个答案:

答案 0 :(得分:0)

在tsconfig.json中将allowSyntheticDefaultImports和esModuleInterop设置为true,因为asi修补程序对我有用。等待修复。