类型'HTMLProps <htmldivelement>'上不存在属性'styleName'

时间:2017-03-25 13:37:44

标签: javascript reactjs typescript webpack react-css-modules

我尝试在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,
}

3 个答案:

答案 0 :(得分:3)

使用@ types / react-css-modules。

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

或者,

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

答案 1 :(得分:0)

我使用VSCode IDE,只是更改了工作区的Type Script版本,而不是IDE版本。

答案 2 :(得分:0)

如果使用preact时遇到任何错误,请在/ types目录中添加preact.d.ts文件,内容如下:

import preact from 'preact';

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

    interface SVGAttributes {
      styleName?: string;
    }
  }
}