Спасибо всем за ответы. Они верны, но я искал более подробную версию. Я провел еще какое-то исследование и обнаружил это на листе реакции-типов на github: https://github.com/typescript-cheatsheets/react-typescript-cheatsheet#reacttypescript -хитах
Компоненты функций
Их можно записать как обычно функции, которые принимают аргумент props и возвращают элемент JSX.
type AppProps = { message: string }; /* could also use interface */
const App = ({ message }: AppProps) => <div>{message}</div>;
Как насчет React.FC
/ React.FunctionComponent
? Вы также можете написать компоненты с React.FunctionComponent (или сокращенно React.F C):
const App: React.FC<{ message: string }> = ({ message }) => (
<div>{message}</div>
);
Некоторые отличия от версии «нормальной функции»:
Обеспечивает проверку типов и автозаполнение для stati c свойств, таких как displayName, propTypes и defaultProps. Однако в настоящее время существуют известные проблемы, связанные с использованием defaultProps с React.FunctionComponent. Подробности смотрите в этом выпуске - прокрутите вниз до нашего раздела defaultProps для ввода там рекомендаций.
Он предоставляет неявное определение дочерних элементов (см. Ниже) - однако существуют некоторые проблемы с неявным типом дочерних элементов (например, DefiniteTyped # 33006 ), и в любом случае, возможно, будет лучше определить стиль для компонентов, которые используют дочерние элементы.
const Title: React.FunctionComponent<{ title: string }> = ({
children,
title
}) => <div title={title}>{children}</div>;
В будущем он может автоматически помечать реквизиты как только для чтения, хотя это спорный вопрос, если объект реквизита Деструктурирован в списке параметров.
React.FunctionComponent явно указывает тип возвращаемого значения, в то время как нормальная версия функции неявна (или требует дополнительной аннотации).
В большинстве случаев это не имеет большого значения, какой синтаксис используется, но синтаксис React.F C немного более многословен без предоставления явного преимущества, поэтому приоритет был отдан синтаксису "обычной функции".