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