Я хотел бы использовать перегрузку машинописного текста для обеспечения смысла для функции, которую я пишу.Подписи отличаются только типом параметра.У меня проблема в том, что если кто-то передает что-то, совпадающее с param1 в первой перегрузке, а param2 - нет, то оно переходит к общей перегрузке.Я хотел бы, чтобы это не было принято, и чтобы intellisense пометил его как ошибку.
Я пытался использовать условную типизацию с помощью Exclude <>, которая не работала.
type Exclusion = "Invalid";
type ExcludeString = Exclude<string, Exclusion>;
func(param1: "Activate", param2: (value: SomeInterface) => any): void;
func(param1: ExcludeString, param2: (value: any) => any): void;
Когда я звоню func("Activate", (value: NotSomeInterface) => console.log("Invalid"));
, я бы хотел, чтобы intellisense сообщал пользователю об ошибке.Вместо этого ничего не происходит из-за провала.