Typescript / TSLint: как вызвать typeof для возвращаемого значения функции? - PullRequest
0 голосов
/ 30 июня 2018

Это прекрасно работает:

const f = () => ({
  a: 5,
  b: "hi",
  c: true
});

const a = f();

type t = typeof a;  // t is {a: number, b: string, c: boolean}

Но это не работает:

const f = () => ({
  a: 5,
  b: "hi",
  c: true
});

type t = typeof (f());  // TSLint error: "Identifier expected"

Почему это не работает? Любая идея, как определить т, не создавая?

1 Ответ

0 голосов
/ 30 июня 2018

Вы можете использовать условный тип ReturnType для получения возвращаемого типа функции

const f = () => ({
  a: 5,
  b: "hi",
  c: true
});

type t = ReturnType<typeof f>;  // t is {a: number, b: string, c: boolean }
...