【问题标题】:How to specify function parameters for React component callback with TypeScript?如何使用 TypeScript 为 React 组件回调指定函数参数?
【发布时间】:2018-01-19 14:44:23
【问题描述】:

我在 TypeScript 中有一个 React 组件,看起来像这样:

interface FooDetails {
    name: string
    latitude: number,
    longitude: number,
}

interface FooSelectorProps {
    onDetailsChanged: Function,
}

class FooSelector extends React.Component<FooSelectorProps, any> {
    constructor(props: FooSelectorProps, context) {
        super(props, context);
    }

    onTravelTypeChange(event) {
        this.setState({ travelType: event.target.value });
    }

    onDetailsChange(fooData) {
        this.props.onDetailsChanged({
            name: fooData.name,
            latitude: fooData.latitude,
            longitude: fooData.longitude,
        });
    }

    render() {
            return <div>...Foo selection UI...</div>
    }
}

我希望能够指定我的 propTypes (FooSelectorProps) 中的 onDetailsChanged 函数采用 FooDetails 对象,但我不知道该怎么做。

【问题讨论】:

标签: reactjs typescript


【解决方案1】:

onDetailsChanged 的类型不使用全局类型Function,而是写出类型,因此将FooSelectorProps 更改为:

interface FooSelectorProps {
    onDetailsChanged: ((details: FooDetails) => void)
}

然后您将获得onDetailsChanged 回调的类型检查。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 1970-01-01
    • 1970-01-01
    • 2021-11-10
    • 1970-01-01
    • 2020-05-27
    • 2019-06-08
    相关资源
    最近更新 更多