В TypeScript, когда использовать <> и когда использовать:

Я не понимаю, когда мне следует использовать <>, а когда мне следует использовать : для присвоения типа атрибуту. У меня есть правильный код ниже, но я не уверен, почему я объявляю React.FunctionComponent<Props>, а не React.FunctionComonent : Props

    interface Props {
        speakers : Speaker[]
    }

    const SpeakersMain : React.FunctionComponent<Props> = (props : Props) => (
        <div>
            <SpeakersHeader/>
            <SpeakerList speakers = {props.speakers} />
        </div>
    );

Возможно, вы захотите начать с чистого TS, прежде чем погружаться в React + TS. Это общая функция TS.

Estus Flask 17.12.2018 16:29
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
1
246
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
const SpeakersMain: React.FunctionComponent<Props> = ...;

следует использовать, потому что использование : после React.FunctionComponent было бы неправильным синтаксисом.

SpeakersMain: React.FunctionComponent означает, что переменная SpeakersMain относится к типу React.FunctionComponent. В то время как <Props> добавляет пояснение к React.FunctionComponent, потому что он был определен как общий тип в типизации React. Синтаксис <> позволяет передавать Props в качестве параметра.

Тип React.FunctionComponent<Props> означает, что это функция, которая получает тип Props в качестве параметра props.

Работает как:

type Foo<T = {}> = (props: T) => void;
type Bar = { bar: number };

var foo1: Foo = (props) => { /* props is supposed to be empty object by default */ };
var foo2: Foo<Bar> = (props) => { /* props is supposed to be Bar */ };

Спасибо @estus Имеет смысл. Я парень C#, так что должен был знать об этом. Я просто не думал о том, что JavaScript имеет смысл. Тип перехода от нетипизированного к типизированному, а затем снова к типизированному снова.

Pete 17.12.2018 17:34

Рад, что помог.

Estus Flask 17.12.2018 17:36

В TypeScript много постороннего синтаксиса. Мне понадобится время, чтобы понять, что такое "Хорошие части"

Pete 18.12.2018 02:52

Другие вопросы по теме