[[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());