【发布时间】:2018-11-29 12:20:01
【问题描述】:
我正在尝试为现有的 stateless React 组件套件创建类型定义,这样我就可以自动生成文档并改进团队工具中的智能感知。
示例组件可能如下所示:
myComponent.js
import React from 'react';
export const MyComponent = ({ prop1, prop2, prop3 }) => (
<div>
{ prop1 ? prop2 : prop3 }
</div>
);
我希望我的类型定义为:
- 定义哪些道具是允许的(以及哪些是必需的)
- 它将返回 JSX
查看this 使用 TypeScript 创建 React 组件的示例,我发现了类型:React.SFC。
我试图在我的定义中使用它:
index.d.ts
declare module "MyComponent" {
import React from 'react';
interface MyComponentProps {
prop1: boolean;
prop2?: string;
prop3?: string;
}
export const MyComponent = React.SFC<MyComponentProps>
}
但我收到了 linting 错误 [ts] '(' expected.
我对 TypeScript 很陌生,我显然遗漏了一些东西,但我找不到任何关于为无状态组件创建类型定义的文章。
编辑 需要明确的是,我不想在 TypeScript 中重写我的组件。我想为现有的 ES6 无状态组件创建一个类型定义文件 (*.d.ts)。
【问题讨论】:
标签: reactjs typescript type-definition