属性'styleName'在类型'HTMLProps上不存在 “

问题描述 投票:1回答:3

我尝试在typescript中使用react-css-modules,但是我收到了一条错误消息,无法将styleName添加到div元素。这是代码。

import * as Immutable from 'immutable';
import * as React from 'react';
import * as  CSSModules from 'react-css-modules';
import { connect } from 'react-redux';
import { bindActionCreators, Dispatch } from 'redux';
const styles = require<any>('./style.scss');

interface RootProps {
    data: Immutable.List<string>;
    dispatch: Dispatch<any>;
}

@CSSModules(styles)
export class Root extends React.Component<RootProps, {}>{
    render() {
        return (
            <div styleName='root'>
              Hello
            </div>
        )
    }
}


export default connect(mapStateToProps, mapDispatchToProps)(Root);

我收到此错误消息:'Property 'styleName' does not exist on type 'HTMLProps<HTMLDivElement>'

和tsconfig

"compilerOptions": {
    "target": "es5",
    "moduleResolution": "node",
    "jsx": "react",
    "experimentalDecorators": true,
    "removeComments": true,
    "preserveConstEnums": true,
    "allowSyntheticDefaultImports": true,
    "allowJs": true,
    "sourceMap": true,
}
javascript reactjs typescript webpack react-css-modules
3个回答
3
投票

使用@ types / react-css-modules。

npm install --save-dev @types/react-css-modules

要么,

yarn add @types/react-css-modules --dev

0
投票

我使用的是VSCode IDE,我刚刚更改了Work Space的Type Script版本而不是IDE版本。


0
投票

如果有人在使用preact时遇到同样的错误,请在/ types目录中添加preact.d.ts文件,其中包含以下内容:

import preact from 'preact';

declare global {
  namespace JSX {
    interface HTMLAttributes {
      styleName?: string;
    }

    interface SVGAttributes {
      styleName?: string;
    }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.