Просто изучаю машинопись и реагирую, и у меня возникает вопрос.
При использовании 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?