Declarative code

Természetesen, Gábor! Az alábbiakban pontokba szedve kifejtem, mire utalhatnak ezek az interjú szempontok egy medior frontend fejlesztői szinthez illően, külön TypeScript, JavaScript és ökoszisztéma fókuszra bontva.


✅ „Deklaratív kód (pl. array)”

A deklaratív kód azt jelenti, hogy megmondod, mit akarsz, nem pedig azt, hogyan történjen.

Példa imperatív vs deklaratív:

// Imperatív (hogyan csinálja)
const numbers = [1, 2, 3, 4];
const doubled: number[] = [];
for (let i = 0; i < numbers.length; i++) {
  doubled.push(numbers[i] * 2);
}

// Deklaratív (mit akarunk)
const doubled = numbers.map(n => n * 2);
  • map, filter, reduce = deklaratív szemlélet.
  • Angular template binding (*ngIf, *ngFor) szintén deklaratív DSL-t használ.

✅ TypeScript típusok: void, any, unknown, never

void

  • Függvények visszatérési típusa, ha nem adnak vissza semmit.
function logMessage(msg: string): void {
  console.log(msg);
}

any

  • Kikapcsolja a típusellenőrzést.
  • Kerülendő, csak legacy vagy dinamikus adattípusok esetén.
let value: any = 42;
value = 'hello';
value = { foo: 'bar' };

unknown

  • Biztonságosabb any. Nem használhatod közvetlenül, előbb ellenőrizni kell a típusát.
let input: unknown = getInput();
if (typeof input === 'string') {
  console.log(input.toUpperCase());
}

never

  • Függvény soha nem tér vissza, például ha dob egy hibát vagy végtelen ciklust tartalmaz.
function throwError(message: string): never {
  throw new Error(message);
}

✅ Entity types, entity objects

Ez feltehetően az adatmodellezésre utal – például típusok, amik valós entitásokat reprezentálnak:

Példa:

type User = {
  id: number;
  name: string;
  email: string;
};

const userEntity: User = {
  id: 1,
  name: 'Anna',
  email: 'anna@example.com',
};
  • Ezeket gyakran használod REST API vagy GraphQL válaszokhoz.
  • A DTO-k (Data Transfer Objects) vagy interface-ek ezekre épülnek.

✅ Leggyakoribb 3rd party library-k

Ha Angular frontend fejlesztés a fő terület (ami nálad gyakori), akkor Angular-höz kapcsolódó 3rd party könyvtárak:

  • PrimeNG, Angular Material, Swiper, Transloco, TailwindCSS
  • RxJS operators: switchMap, debounceTime, catchError, stb.
  • Transloco, NgRx, NGXS

JavaScript / TypeScript ökoszisztémában gyakori:

KönyvtárMire való
Lodash / RamdaUtility függvények (_.cloneDeep, _.merge, stb.)
AxiosPromise alapú HTTP kliens
date-fns / momentDátum kezelés
Zod, YupObjektum séma validáció
RxJSReaktív programozás (Angular része is)
Jest, Vitest, Testing LibraryTesztelés
uuidEgyedi ID generálás
class-validatorObjektum validáció backendre vagy NestJS-re
Formik, React Hook FormFormakezelés React-ben
NgRx, Redux, MobXÁllapotkezelés


Összefoglalás (gyors áttekintő kérdésekhez):

  • Deklaratív: map, filter, *ngFor, ngIf, Reactive Forms.
  • void: nincs return.
  • any: bármilyen típus (kerülendő).
  • unknown: típusellenőrzés után használható.
  • never: soha nem tér vissza (pl. throw).
  • Entity type: User, Post, Product típus/interface.
  • 3rd party lib: axios, lodash, rxjs, primeng, angular material, stb.

Ha szeretnél, adhatok gyakorló feladatokat vagy kérdéssorokat ezekből.

Was this page helpful?