TypeScript で React コンポーネントのコールバックの関数パラメータを指定するにはどうすればよいでしょうか? 質問する

TypeScript で React コンポーネントのコールバックの関数パラメータを指定するにはどうすればよいでしょうか? 質問する

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>
    }
}

onDetailsChangedpropTypes( FooSelectorProps) 内の関数がオブジェクトを受け取るように指定できるようにしたいのですFooDetailsが、その方法がわかりません。

ベストアンサー1

Functiontype of にグローバル型を使用する代わりにonDetailsChanged、型を記述することができます。次のようFooSelectorPropsに変更します。

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

すると、コールバックの型チェックが行われますonDetailsChanged

おすすめ記事