Есть проблема с посылкой. То есть союзы не отсортированы, а массивы отсортированы. "A" | "B"
эквивалентно "B" | "A"
, но ["A", "B"]
не эквивалентно ["B", "A"]
.
Из-за этого отображение работает проще в другом случае:
type ArrayofA = ["A", "B", "C"];
type A = ArrayofA[number];
const arr1: ArrayofA = ["A", "B", "C"]; //ok
const arr2: ArrayofA = ["A", "B"]; // not ok
const arr3: ArrayofA = ["A", "B", "C", "D"]; //not ok