Параметр обратного вызова не является обязательным, но машинопись не вызывает ошибок - PullRequest
0 голосов
/ 09 апреля 2020

Просто изучаю машинопись и реагирую, и у меня возникает вопрос.

При использовании setState с обратным вызовом средства обновления я вижу, что setState в машинописи определяется следующим образом:

setState<K extends keyof S>(
    state: ((prevState: Readonly<S>, props: Readonly<P>) => (Pick<S, K> | S | null)) | (Pick<S, K> | S | null),
    callback?: () => void
): void;

Итак, средство обновления обратный вызов определяется следующим образом:

(prevState: Readonly<S>, props: Readonly<P>) => (Pick<S, K> | S | null))

Я вижу, что параметр props не является обязательным, но когда я пишу этот код в моем компоненте, Typescript позволяет мне пропустить параметр props.

this.setState( ( state: UsersState ) => ( {
  users: [ ...state.users, newUser ],
} ) );

Почему машинопись не вызывает здесь исключения из-за отсутствия props param. Это связано с Typescript или, может быть, Javascript?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...