Использовать предполагаемый тип возврата в качестве шаблона в том же интерфейсе - PullRequest
0 голосов
/ 14 февраля 2020

У меня есть тип, в котором я хочу использовать выводимый тип возврата из одного свойства в качестве аргумента в другом свойстве.

желаемое использование:

const options = {
  include: [
    (x: /* I want this x to be inferred as boolean */) => {}
  ],
  transform: (_) => true,
}
type Transformer<T extends object> = (value: ValueOf<T>) => any
type TransformerReturnType<F> = F extends (v: any) => infer U ? U : any

interface Options<Input extends object, T = Transformer<Input>> {
  exclude: ((value: TransformerReturnType<T>) => boolean)[],
  transform?: T,
}

Есть ли так, чтобы машинопись могла лениво вычислять тип возвращаемого результата преобразования из использования?

Ваш,

...