Как объявить рекурсивный тип карты в TypScript (TS2456: Тип псевдонима "*" циклически ссылается на себя).

coderatchet спросил: 03 февраля 2018 в 12:36 в: typescript

Я хочу определить переменную Map, которая должна содержать либо примитивное значение (string | number | boolean), либо другое Map того же типа.

Я пытался это сделать:

type Primitive = string | number | boolean;
type SafeNestedMap = Map<string, Primitive | SafeNestedMap>;
let states: SafeNestedMap = new Map<string, SafeNestedMap>();

однако компилятор жалуется:

TS2456: Type alias 'SafeNestedMap' circularly references itself.

Как я могу правильно объявить этот рекурсивный тип

0 ответов