josdejong/ducktype

Are recursive types supported?

Open

#40 ouverte le 17 janv. 2021

Voir sur GitHub
 (5 commentaires) (0 réactions) (0 assignés)JavaScript (10 forks)github user discovery
enhancementhelp wanted

Métriques du dépôt

Stars
 (92 stars)
Métriques de merge PR
 (Métriques PR en attente)

Description

Is it possible to define a type e.g. "segment" that is either a string, a number, or an array of segments (recursive definition)? If not, please consider it a feature request.

Something like:

const segment = ducktype.indirect();
segment.that = ducktype(String, Number, [segment]);

or even:

const segment = ducktype.recursive(self => ducktype(String, Number, [self]));

Basically I need to validate that all "leaves" of a non-flat array are of a particular union type. I cannot flatten the array before validating because it is nested in a bigger data structure that I want to validate as a whole (as opposed to picking these arrays out of it for flattening and validation), and the nesting structure within the array is meaningful.

Guide contributeur