根据传递的道具为组件创建类型

时间:2019-03-07 18:52:33

标签: javascript reactjs typescript

我正在创建一个看起来像这样的组件:

<Button component='a' href='/'>
  Link
</Button>

我想获取component道具的类型定义,因此我可以自动将其包含在Button组件的道具中。关于Button组件的接口/类型的任何想法应该看起来像

2 个答案:

答案 0 :(得分:0)

您的Button组件可以这样输入:

import * as React from 'react';

type ButtonProps = {
    component: string,
    href: string,
}
type ButtonState = {}
export default class Button extends React.Component<ButtonProps , ButtonState > {
    constructor(props) {
        super(props);
        this.state = {}
    }
    render() { return <div/> }
}

我写了整篇文章,从A到Z构建TypeScript + React应用,请查看完整的详细信息和说明!

答案 1 :(得分:0)

我以前使用过这种模式。声明类型为component的{​​{1}}道具。您的React.ComponentType<T> | string组件应该看起来像这样:

Button