Строковые литеральные типы выводятся в String Type при использовании ReturnType - PullRequest
0 голосов
/ 19 апреля 2020

У меня есть следующая функция (действие приставки), из которой я получаю тип возвращаемого значения.

export function apiGet(
  uri: string,
  onSuccess: string,
  onError: string,
  params?: { [key: string]: any }
) {
  return {
    type: "API_GET",
    uri,
    params,
    onSuccess,
    onError,
  };
}

export type ApiGet = ReturnType<typeof apiGet>;

В приведенном выше коде я ожидал, что возвращаемый тип будет литеральным типом для свойства type .

type ApiGet = {
  type: "API_GET";
  uri: string;
  params?: { [key: string]: string };
  onSuccess: string;
  onError: string;
};

Но выводимый тип выглядит следующим образом:

type ApiGet = {
  type: string;
  uri: string;
  params?: { [key: string]: string };
  onSuccess: string;
  onError: string;
};

Это влияет на возможность использовать действия в случае переключателя и выводить другие реквизиты в блоке case соответственно.

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