Gyakorlat – Szórakozás paraméterekkel
Ebben a gyakorlatban olyan függvényeket fog létrehozni, amelyek kötelező, nem kötelező és alapértelmezett paraméterekkel rendelkeznek.
Kötelező paraméterek
Nyissa meg a Játszótért , és távolítsa el a meglévő kódot.
Adja meg a következő nyílfüggvényt, amely három kötelező paramétert fogad el.
let addThreeNumbers = (x: number, y: number, z: number): number => x + y + z;
Próbálja meg meghívni a függvényt a beírással
addThreeNumbers(10, 20)
. A TypeScript a várt 3 argumentumot adja meg, de 2-t kapott. A "z" argumentum nem lett megadva. Amikor fut, a függvény azért ad visszaNaN
, mert a harmadik argumentumot a rendszer a következőképpen adta átundefined
, így a számítás érvénytelen.Mi történik a beíráskor
addThreeNumbers(10, 20, 30, 40)
? A TypeScript a Várt 3 argumentumot , de 4-et kapott. Amikor fut, a negyedik argumentum leesik, és a függvény visszatér60
.
Választható paraméterek
A függvényben próbálja meg opcionálissá tenni a paramétert
y
. Mi történik?let addThreeNumbers = (x: number, y?: number, z: number): number => x + y + z;
A TypeScript hibát jelez, mert az opcionális paraméterek helyzete számít. A paraméterlistában az opcionális paramétereknek az összes szükséges paramétert követnie kell.
y
A paraméter helyett próbálja meg opcionálissá tenni a paramétertz
. Ahhoz is, hogy ez a függvény a megfelelő értéket adja vissza, frissítenie kell azt is, hogy elhárítsa azt a lehetőséget, amelyz
most már átadható.undefined
Most már képesnek kell lennie arra, hogy meghívja a függvénytaddThreeNumbers(10, 20)
a vagyaddThreeNumbers(10, 20, 30)
a .let addThreeNumbers = (x: number, y: number, z?: number): number => { if((z === undefined)) { return x + y; } else { return x + y + z; } };
Alapértelmezett paraméterek
Adja meg a következő nyílfüggvényt, amely három kötelező paramétert fogad el.
let subtractThreeNumbers = (x: number, y: number, z: number): number => x - y - z;
A paraméter alapértelmezett értékének hozzárendelése
100
az
következőre cserélvez: number
z = 100
: .let subtractThreeNumbers = (x: number, y: number, z = 100): number => x - y - z;
Próbálja meg meghívni a függvényt két és három argumentummal az eredmény teszteléséhez.
subtractThreeNumbers(10, 20); // returns -110 because 'z' has been assigned the value 100 subtractThreeNumbers(10, 20, 15); // returns -25