[[oktatas:web:typescript|< TypeScript]] ====== TypeScript interfész ====== * **Szerző:** Sallai András * Copyright (c) Sallai András, 2021, 2022, 2023 * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]] * Web: https://szit.hu ===== Interfész ===== Interfész típusként használjuk, csak adattagok vannak. interface Dolgozo { name: string; city: string; } /*Létrehozunk egy janos nevű objektumot, ami Dolgozo típusú: */ let janos : Dolgozo; //Az adattagoknak értéket adunk: janos = { name: 'névtelen', city: 'ismeretlen' } console.log(janos.name); ===== Megvalósítás ===== A következő példában az interfészben elvont metódust hozunk létre, amit egy osztályban megvalósítunk. //iDolgozo interfész: interface iDolgozo { getName(): string; } /*A Dolgozo osztály megvalósítja a iDolgozo interfészt: */ class Dolgozo implements iDolgozo { name = "névtelen"; getName(): string { return this.name; } } let janos = new Dolgozo(); console.log(janos.getName()); ===== emelFizetes() metódus ===== Adattagok és metódusok keverése: interface Dolgozo { nev: string; fizetes: number; emelFizetes(mertek: number):void; } /* A CegesDolgozo osztály megvalósítja a Dolgozo interfészt: */ class CegesDolgozo implements Dolgozo { nev: string; fizetes: number; constructor() { this.nev = 'névtelen'; this.fizetes = 0; } emelFizetes(mertek: number): void { this.fizetes += mertek; } } var janos = new CegesDolgozo(); janos.nev = "Park János"; console.log(janos.nev); ===== Beállító, lekérdező ===== interface Dolgozo { nev: string; fizetes: number; lekerFizetes(): number; beallitFizetes(fizetes:number):void; } class CegesDolgozo implements Dolgozo { nev: string; fizetes: number; constructor() { this.nev = 'névtelen'; this.fizetes = 0; } lekerFizetes(): number { return this.fizetes; } beallitFizetes(fizetes: number): void { this.fizetes = fizetes; } } var janos = new CegesDolgozo(); janos.beallitFizetes(300); console.log(janos.lekerFizetes());