Информация:
Использование Typescript 3.3.3333 в Jetbrains Rider
Учитывая это определение типа Reducer<State, Action>
:
* @template S The type of state consumed and produced by this reducer.
* @template A The type of actions the reducer can potentially respond to.
*/
export type Reducer<S = any, A extends Action = AnyAction> = (
state: S | undefined,
action: A
) => S
Почему тип возврата S
не тип проверяет состояние, которое я возвращаю из редуктора, если я не определю его явно?
export const INITIAL_STATE: AuthenticationState = {
authenticationInProgress: false,
accessToken: null,
tokenType: null,
expiryTimeMs: null,
errorInformation: null,
isAdmin: false,
};
export const authenticationReducer: Reducer<AuthenticationState,
AuthenticationActions> = (state = INITIAL_STATE, action):
(why is this necessary??) -> AuthenticationState => {
switch (action.type) {
case "authentication/user_authentication_request": {
return {
...state,
problem -> hello: "hi",
authenticationInProgress: true,
};
}
...
Поведение, которое я ожидаю, без необходимости определять AuthenticationState в качестве возвращаемого значения
VS.
Почему больше нет проверки типа возвращаемого значения, если тип редуктора включает возвращаемое значение S?
Type includes the return value of S">
Любая потеря света и мудрость действительно приветствуются. Заранее спасибо.