Для значения типа объединения используйте перегруженную функцию, которая принимает тип объединения:
interface ICon {
getControl(controlName: "a" | "b"): string;
getControl(controlName: string): undefined;
}
С подписью:
getControl(controlName: "a"): string;
controlName
может быть значением литерала type "a"
.
Но "a" | "b"
нельзя использовать, когда ожидается "a"
: другими словами "a" | "b"
не является подтипом "a"
.
Typescript будет всегда отступать к:
getControl(controlName: string): undefined;