yoklateknik mülakat

Frontend Typescript Modules Declarations Mülakat Soruları

75 doğrulanmış Frontend Typescript Modules Declarations mülakat sorusu — cevaplarıyla çöz, açıklamalarıyla öğren, gerçek simülasyonda kendini test et.

Gerçek simülasyonu dene →

Örnek sorular

Typescript Modules DeclarationsZorluk 1
Bir TypeScript projesinde .d.ts dosyasının amacı nedir?
  • aBuild zamanında çalışan çalıştırılabilir JavaScript içerir
  • bBir modülün API şeklini/tiplerini tarif eder, uygulama kodu içermez
  • ctsconfig.json'ın yerini alan bir config dosyasıdır
  • dBir .ts dosyasının derlenmiş çıktısını saklar
Açıklama:Bir declaration dosyası (.d.ts) sadece tip bilgisi içerir — interface'ler, fonksiyon imzaları, değişken tanımları — hiç çalışma-zamanı kodu yoktur. Derleyiciye bir modülün ya da kütüphanenin şeklinin ne olduğunu söyler, böylece implementasyonu düz JavaScript ile yazılmış ya da ayrı derlenmiş olsa bile TypeScript onu kullanan kodu tip kontrolünden geçirebilir.
Typescript Modules DeclarationsZorluk 1
declare anahtar kelimesi TypeScript derleyicisine ne söyler?
  • aSonraki değişkenin otomatik olarak export edilmesi gerektiğini
  • bKod bloğunun derleme sırasında kaldırılması gerektiğini
  • cBir şeyin çalışma zamanında var olduğunu, TypeScript kod üretmeden
  • dDeğişkenin tipinin any olarak çıkarılması gerektiğini
Açıklama:declare, ambient (örtük) bir tanımdır: derleyiciye 'bana güven, bu bir yerde çalışma zamanında var' (örn. bir script etiketiyle sağlanan bir global, ya da bir bundler'ın enjekte ettiği bir değişken) der, TypeScript bu tanım için hiç JavaScript üretmez. Bu tamamen tip-kontrolü-zamanı bir yapıdır.
Typescript Modules DeclarationsZorluk 1
import type { User } from './types';
import { fetchUser } from './api';

Burada düz bir import yerine import type yazmanın temel amacı nedir?
  • aUser'ı sadece-tip işaretler, derlenmiş çıktıdan güvenle silinebilir
  • bUser'ı çalışma zamanında global bir değişken olarak kullanılabilir yapar
  • cUser'ın mevcut dosyadan otomatik olarak yeniden export edilmesini zorunlu kılar
  • dBir interface import ederken zorunlu sözdizimidir, başka hiçbir etkisi yoktur
Açıklama:import type, bir import'u açıkça sadece-tip olarak işaretler. Tipler çalışma zamanında var olmadığından, derleyici User'ın aynı zamanda değer olarak kullanılıp kullanılmadığını analiz etmek zorunda kalmadan bu import'u üretilen JavaScript'ten güvenle tamamen silebilir. User'ın bir tip olarak davranışına hiç etkisi yoktur — sadece neyin üretileceğine etkisi vardır.
Typescript Modules DeclarationsZorluk 2
Hiç tip tanımı olmayan, düz JavaScript ile yazılmış bir npm paketi kuruyorsun. Tipik TypeScript çözümü nedir?
  • aPaket TypeScript'e yeniden yazılana kadar TypeScript projeyi derlemeyi reddeder
  • bPaket otomatik olarak never sayılır ve hiç import edilemez
  • cPaketin tüm kaynak kodunu kendin .ts dosyalarına çevirmen gerekir
  • dPaket için bir .d.ts dosyası sağla (ya da @types/...'tan kur)
Açıklama:Yerleşik tipi olmayan düz-JS paketler için yaygın yaklaşım, tip tanımlarını ayrıca eklemektir — ya topluluğun bakımını yaptığı @types/<paket> paketi (DefinitelyTyped) ya da elle yazılmış bir .d.ts dosyası — böylece TypeScript, paketin kendi kaynağının TypeScript olmasına gerek kalmadan API'nin şeklini bilir.
Typescript Modules DeclarationsZorluk 2
// global.d.ts
declare const __APP_VERSION__: string;

// app.ts
console.log(__APP_VERSION__.toUpperCase());

__APP_VERSION__ aslında build zamanında bundler tarafından enjekte ediliyor ve TypeScript kaynağında hiçbir yerde atanmıyor. app.ts derlenince ne olur?
  • aDerleme hatası: __APP_VERSION__ bir değer atanmadan kullanılıyor
  • bÇalışma zamanı hatası, çünkü TypeScript değişken undefined ise fırlatan bir kontrol ekler
  • cDerlenir — declare, değişkenin başka yerde var olduğunu söyler, atama gerekmez
  • dTypeScript derleme sırasında __APP_VERSION__'ı otomatik olarak 'unknown' string'iyle değiştirir
Açıklama:declare const, ambient bir tanımdır — __APP_VERSION__'ın çalışma zamanında bir yerde (burada, bundler tarafından enjekte edilerek) string olarak var olduğunu iddia eder, TypeScript'in bunun için bir atama gerektirmesine ya da üretmesine gerek kalmadan. Derleyici tanıma güvenir ve .toUpperCase()'i string'e karşı tip kontrolünden geçirir. TypeScript gerçek çalışma-zamanı değerini doğrulamaz ya da sağlamaz.
Typescript Modules DeclarationsZorluk 2
Bir interface için export ile export type arasındaki temel fark nedir?
  • aexport type silinmeyi garanti eder, ama interface'lerin zaten çalışma-zamanı yoktur
  • bexport type, interface'i hem tip hem çalışma-zamanı değeri olarak kullanılabilir yapar
  • cInterface'ler için tek başına export geçersiz sözdizimidir; export type zorunludur
  • dexport type, interface'i otomatik olarak bir type alias'a dönüştürür
Açıklama:Interface'ler zaten çalışma-zamanı temsili olmayan saf tip-seviyesi yapılardır, bu yüzden export ile export type bir interface için pratikte aynı davranır — ikisi de silinir. export type esas olarak, tip ile değer arasında belirsiz olabilecek isimlerin yeniden export'unda (örn. sadece tip olarak kullanılan bir sınıfı yeniden export etmek) anlamlı şekilde farklılaşır.

2925 soruluk Frontend bankasında kendini sına.

Mülakata başla