3 votes

Types de tableaux d'union dans le flux

J'ai les types suivants :

type formElement = {
  name: string,
  dirty: boolean,
  valid: boolean,
  Errors: Array<inputErrorType>,
  Children: Array<inputElement> | Array<formElement>
}

type inputElement = {
  name: string,
  value: string,
  dirty: boolean,
  valid: boolean,
  Errors: Array<inputErrorType>
};

Puis je veux déclarer un objet de ces types.

var topForm: formElement = {
  name: "MainForm",
  type: "Form",
  dirty: false,
  valid: true,
  Errors: [],
  Children: [
     { 
      name: "First",
      value: "test",
      dirty: true,
      valid: true,
      Errors: []
    }
  ]
}

Et je reçois une erreur qui dit que :

Could not decide which case to select union type

De toute évidence, comme il me manque la propriété "Children", mon élément dans le tableau devrait être un inputElement.

1voto

Aflred Points 1239
Children: Array<inputElement> | Array<formElement>

J'avais besoin de changer pour

 Children: Array<inputElement | formElement>

Le tableau peut donc avoir à la fois inputElement et formElement, mais pas l'un des deux.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X