Créer une interface dactylographiée basée sur une carte const defaultValues

Nov 10 2020

Je voulais faire quelque chose de similaire à ceci: https://stackoverflow.com/a/45777530/565877

Mais je ne travaille avec aucune sorte de schéma de base de données réel, j'ai juste un simple objet de noms de champs et leurs valeurs par défaut, comme ceci:

export const FormFieldDefaults = {
  firstName: '',
  lastName: '',
  dateOfBirth: ''
}

Je souhaite générer ce type respectif:

export type FormFields = {
  firstName: string
  lastName: string
  dateOfBirth: string
}

Réponses

1 DevinGRhode Nov 10 2020 at 23:22

Il s'avère que tout ce dont nous avons besoin est l' typeofopérateur de type :

export const FormFieldDefaults = {
  firstName: '',
  lastName: '',
  dateOfBirth: ''
}

export type FormFields = typeof FormFieldDefaults