Я знаю, как написать перегрузку функционального компонента React и функции TypeScript +.
Но когда эти двое объединены вместе, я запутался!
Вот минимальный пример кода, иллюстрирующий то, что я хочу сделать:
import React, { FunctionComponent } from 'react';
type PropType1 = { type: 'type1'; name: string };
type PropType2 = { type: 'type2'; age: number };
// How do I properly hook FunctionComponent + PropType1 + PropType2?
// It's called FunctionComponent right?
function Example({ type, name, age }) {
if (name === undefined) {
return (
<div>
{type}, {age}
</div>
);
} else {
return (
<div>
{type}, {name}
</div>
);
}
}
export default Example
Использование этого примера должно выглядеть следующим образом:
<Example type="type1" name="Joseph"/>
// => <div> type1, Joseph </div>
<Example type="type2" age={18}/>
// => <div> type2, 18 </div>
<Example type="type3" name="Joseph" age={18}/>
// => Compile Error!
Как правильно перехватить FunctionComponent + PropType1 + PropType2?
И это называется FunctionComponent, верно?