В TypeScript есть способ определить универсальный параметр, который расширяет только одно значение типа объединения?
Например, если я объявляю тип объединения следующим образом:
type Any = "A" | "B"
тогда, если я использую тип в определении функции следующим образом:
const fn = <T extends Any>(arg: T[]) => {}
, тогда аргумент args может быть массивом, который содержит значения как "A", так и "B".«;например, это будет допустимо:
let x = fn(["A", "B"])
, что противоречит самой цели использования универсального параметра в определении функции (т. е. ограничить значения в массиве аргументов args толькоодин конкретный тип)
Конечно, я мог бы определить функцию следующим образом:
const fn = (arg: "A"[] | "B"[]) => {}
Но если число типов компонентов в объединении велико, это может быть нецелесообразно