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?