我正在将 TypeScript 与 React 一起使用,当我运行 tsc/jest 测试时,它会返回与此类似的所有组件的错误:
Property 'prop name' does not exist on type '{ children?: ReactNode; }'.
文件夹/组件结构:
– ExampleComponent
- component.tsx
- index.ts
- styles.css
- styles.css.d.ts
组件.tsx
import React from 'react';
import { Text } from 'designlibrary';
import styles from './styles.css';
export interface TypeExports {
title: string;
text: string;
}
export const Blurb: React.FunctionComponent = (props: TypeExports) => (
<div className={styles.blurb}>
<Text color='primary' size='h3' type='h3'>
{props.title}
</Text>
<Text color='primary' size='p1' type='p'>
{props.text}
</Text>
</div>
);
索引.ts
export { Blurb } from './component';
样式.css.d.ts
interface CssExports {
blurb: string;
}
declare var cssExports: CssExports;
export = cssExports;
我在导出类时遇到了类似的错误,并且由于我将上述内容添加到.style.css.d.ts文件中,它解决了所有与 css 相关的打字稿错误。
上面的组件仍然返回的错误示例是:
Property 'text' does not exist on type '{ children?: ReactNode; }'.
编辑:
在 Nicholas 的帮助下,这是工作组件的结构:
export interface TypeExports {
title: string;
text: string;
}
export const Blurb: React.FunctionComponent<TypeExports> = (props) =>
<div className={styles.blurb}>
<Text color='primary' size='h3' type='h3'>
{props.title}
</Text>
<Text color='primary' size='p1' type='p'>
{props.text}
</Text>
</div>