josdejong/ducktype

Are recursive types supported?

开放

#40 创建于 2021年1月17日

 (5 条评论) (0 个反应) (0 位负责人)JavaScript (10 个派生)github user discovery
enhancementhelp wanted

仓库指标

星标
 (92 个星标)
PR 合并指标
 (30 天内没有已合并 PR)

描述

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.

贡献者指南