typescript - hvorfor krever TS ett argument for å kalle en av to funksjoner med forskjellig antall parametere?


Gitt koden

const funcs = {
    f1: (s: string) => {},
    f2: (s1: string, s2?: string) => {},
    f3: (s1?: string, s2?: string) => {}
};

funcs['' as 'f1' | 'f2']('x', 'y');   // OK
funcs['' as 'f1' | 'f3']('x', 'y');   // Expected 1 arguments, but got 2.

hvorfor krever TS nøyaktig ett argument for funksjonen som er slått sammen fra f1, f3?

Lekeromlenke