Tesztkörnyezet – Interfészek használata a TypeScriptben

Befejeződött

Ebben a tesztkörnyezetben néhány JavaScript-kódot erősen gépelt kódmá alakít át interfészek használatával.

A JavaScript-kód két függvényt tartalmaz: calculateInterestOnlyLoanPaymenta csak kamatozású kölcsön törlesztőrészletét számítja ki, és calculateConventionalLoanPaymenta hagyományos kölcsön törlesztőrészletét számítja ki. A legtöbb hitelszámításhoz hasonlóan mindkét függvény elfogadja és interestRate paramétereket is elfogadprincipal. A különbség köztük az, hogy a calculateConventionalLoanPayment függvény egy harmadik tulajdonságot fogad el, months amelyet a calculateInterestOnlyLoanPayment függvény nem.

Property Leírás
principal A hitel tőkeösszege.
interestRate A kölcsön éves kamatlába. Például az 5% 5-ként van megadva.
months A hónapokban megadott kölcsön futamideje. A csak kamatozású kölcsön nem igényli ezt a tulajdonságot, mert a hónapok száma irreleváns (a kölcsön soha nem lesz visszafizetve, ha minden hónapban csak kamatot fizetnek.)

Ebben a gyakorlatban a következőket fogja végrehajtani:

  1. Deklaráljon egy olyan felületet Loan , amely két tulajdonságot határoz meg, principal és interestRate.
  2. Deklaráljon egy olyan felületetConventionalLoan, amely kiterjeszthető Loan, és meghatározza a hagyományos hitelhez szükséges további tulajdonságot. months
  3. Frissítse a két függvényt az új interfészek implementálásához, és írja be erősen a paramétereket.

1. gyakorlat – Az interfészek deklarálása

  1. Klónozza a kezdő adattárat a parancssorba az alábbiak beírásával.

    git clone https://github.com/MicrosoftDocs/mslearn-typescript
    cd mslearn-typescript/code/module-03/m03-start
    code .
    
  2. Nyissa meg a fájlmodul03.ts fájlt.

  3. Keresse meg a következőt TODO: Declare the Loan interface: . Deklaráljon egy úgynevezett Loan felületet, amely két tulajdonságot határoz meg, principal és interestRatemindegyiket number.

    interface Loan {
        principal: number,
        interestRate: number    //* Interest rate percentage (eg. 14 is 14%)
    }
    
  4. Keresse meg a következőt TODO: Declare the ConventionalLoan interface: . Deklaráljon egy olyan felületet ConventionalLoan , amely kiterjeszti Loan, és meghatározza a hagyományos hitelhez monthsszükséges további tulajdonságot , mint a number.

    interface ConventionalLoan extends Loan {
        months: number      //* Total number of months
    }
    

2. gyakorlat – Az interfészek implementálása

  1. Keresse meg a következőt TODO: Update the calculateInterestOnlyLoanPayment function: . Cserélje le a calculateInterestOnlyLoanPayment függvény két paraméterét egy típusú Loan objektumra (például loanTerms: Loan), és adja meg a függvény stringvisszatérési értékét.

    function calculateInterestOnlyLoanPayment(loanTerms: Loan): string {
       // ...
    }
    
  2. Néhány hibát fog látni, mert a TypeScript nem ismeri fel a paramétereket interestRate és principala . Cserélje le a függvény paraméternevét az Loan objektum tulajdonságaira. (Például: loanTerms.interestRate).

    function calculateInterestOnlyLoanPayment(loanTerms: Loan): string {
        // Calculates the monthly payment of an interest only loan
        let interest = loanTerms.interestRate / 1200;   // Calculates the Monthly Interest Rate of the loan
        let payment;
        payment = loanTerms.principal * interest;
        return 'The interest only loan payment is ' + payment.toFixed(2);
    }
    
  3. Adja meg a függvényben a változókat és payment a interestcalculateInterestOnlyLoanPayment változókat.numbers

  4. Tesztelje a függvényt calculateInterestOnlyLoanPayment annak ellenőrzéséhez, hogy megfelelően működik-e. Ne feledje, hogy a paramétereket most már objektum formájában kell átadnia a függvénynek Loan .

    let interestOnlyPayment = calculateInterestOnlyLoanPayment({principal: 30000, interestRate: 5});
    console.log(interestOnlyPayment);     //* Returns "The interest only loan payment is 125.00" 
    
  5. Keresse meg a következőt TODO: Update the calculateConventionalLoanPayment function: . Frissítse a calculateConventionalLoanPayment függvényt, ezúttal cserélje le a három paramétert egy típusú ConventionalLoanobjektumra, és adja meg a függvény stringvisszatérési értékét. Végezze el a függvény implementálásának fennmaradó frissítéseit calculateConventionalLoanPayment .

    function calculateConventionalLoanPayment(loanTerms: ConventionalLoan): string {
       // Calculates the monthly payment of a conventional loan
       let interest: number = loanTerms.interestRate / 1200;   // Calculates the Monthly Interest Rate of the loan
       let payment: number;
       payment = loanTerms.principal * interest / (1 - (Math.pow(1/(1 + interest), loanTerms.months)));
       return 'The conventional loan payment is ' + payment.toFixed(2);
    }
    
  6. Tesztelje a függvényt calculateConventionalLoanPayment annak ellenőrzéséhez, hogy megfelelően működik-e. Ne feledje, hogy a paramétereket most már objektum formájában kell átadnia a függvénynek ConventionalLoan .

    let conventionalPayment = calculateConventionalLoanPayment({principal: 30000, interestRate: 5, months: 180});
    console.log(conventionalPayment);     //* Returns "The conventional loan payment is 237.24" 
    

Tesztkörnyezeti megoldás

A kód végleges verziójának megtekintéséhez írja be a következőt a parancssorba.

cd ../m03-end
code .

Nyissa meg a fájlmodul03.ts fájlt a labor megoldásának megtekintéséhez. A megoldás futtatásához a fejlesztői környezet beállításával kapcsolatos további információkért tekintse meg a fenti Tesztkörnyezet beállítási szakaszát.