Skip to content

Instantly share code, notes, and snippets.

@kenmori
Created March 6, 2020 11:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kenmori/8db6a58496320ed4894e8548c6077360 to your computer and use it in GitHub Desktop.
Save kenmori/8db6a58496320ed4894e8548c6077360 to your computer and use it in GitHub Desktop.
書き殴り
type N<T> = { name: T }

type E<T,> = T extends { [key in string]: infer I } ? { name: I } : never

type F<T> = T extends { [key in string]: infer I } ? I : never

const b: F<E<N<number>>> = 5


const obj = { name: { name: { id: 1 }, age: {id: 9} } }

type O<T, U> = { name: { [key in keyof U]: T } }
type Id<T> = {id: T}
const a: O<Id<number>, { name: { id: 1 }, age: { id: 2 } }> = obj
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment