Hi there! Are you looking for the official Deno documentation? Try docs.deno.com for all your Deno learning needs.

$Call

$Call

@example
// Common use-case
  const add = (amount: number) => ({ type: 'ADD' as 'ADD', payload: amount });
  type AddAction = $Call<typeof returnOfIncrement>; // { type: 'ADD'; payload: number }

  // Examples migrated from Flow docs
  type ExtractPropType<T extends { prop: any }> = (arg: T) => T['prop'];
  type Obj = { prop: number };
  type PropType = $Call<ExtractPropType<Obj>>; // number

  type ExtractReturnType<T extends () => any> = (arg: T) => ReturnType<T>;
  type Fn = () => number;
  type FnReturnType = $Call<ExtractReturnType<Fn>>; // number
type $Call<Fn extends (...args: any[]) => any> = Fn extends (arg: any) => infer RT ? RT : never;

§Type Parameters

§
Fn extends (...args: any[]) => any
[src]

§Type

§
Fn extends (arg: any) => infer RT ? RT : never
[src]