Búsqueda de sitios web

TypeScript inferir tipo de las claves de un objeto dinámicamente


Cómo crear una interfaz para verificar el tipo de un objeto basado en las claves ingresadas en otro objeto.

Por ejemplo:

const myObject = {
  colors: {
    black: '#000',
    white: '#fff'
  },
  palette: {
    primary: 'black',
    secondary: 'orange' // <- should give an error because orange does not exist in colors object
  }
};

Respuesta #1

Aquí hay una manera

const colors = {
  black: '#000',
  white: '#fff'
};

const palette: Record<string, keyof typeof colors> = {
  primary: 'black',
  secondary: 'white'
};

const myObject = {
  colors,
  palette
};