TypeScript 5.3-5.4: Yeni Daraltma ve NoInfer
NoInfer yardımcı türünü ve yeni switch/case daraltmasını uygulayın
TypeScript 5.3-5.4: Yeni Daraltma ve NoInfer, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, TypeScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. TypeScript Academy kursu toplamda 4 dersten oluşur.
TypeScript 5.3'e Genel Bakış
TypeScript 5.3 (Kasım 2023), switch/case ifadelerinde geliştirilmiş daraltma, JSDoc tür içe aktarma desteği ve import type içinde çözümleme modu getirdi.
// npm install typescript@5.3Switch/Case Daraltmasında İyileştirme
TS 5.3, switch ifadeleri içindeki tür daraltmayı, özellikle birden çok case içeren ayırt edici birleşimlerde iyileştirdi.
type Result = { status: "ok"; data: string } | { status: "err"; code: number };
function handle(r: Result) {
switch (r.status) {
case "ok":
console.log(r.data); // r: { status: "ok"; data: string } — narrowed
break;
case "err":
console.log(r.code); // r: { status: "err"; code: number } — narrowed
break;
}
}JSDoc Tür İçe Aktarma
TS 5.3, JavaScript dosyalarında yalnızca tür içe aktarmaları için @import JSDoc etiketini desteklemeye başladı.
/** @import { User } from "./types.js" */
/** @param {User} user */
function greet(user) {
console.log(user.name);
}import type İçinde Çözümleme Modu
TS 5.3, içe aktarmanın CommonJS veya ESM olarak çözümlenmesini denetlemek için import type içinde resolution-mode belirtmenize olanak tanır.
import type { User } from "some-library" with { "resolution-mode": "require" };TypeScript 5.4'e Genel Bakış
TypeScript 5.4 (Mart 2024), NoInfer yardımcı türünü, kapanışlarda korunan daraltmayı ve Object.groupBy ile Map.groupBy türlerini kullanıma sundu.
// npm install typescript@5.4NoInfer<T> Yardımcı Türü
NoInfer, TypeScript'in genel bir bağımsız değişkeni çıkarım noktası olarak kullanmasını engeller ve türün yalnızca diğer bağımsız değişkenlerden çıkarılmasını zorunlu kılar.
function createStore<T>(initial: T, onChange: (val: NoInfer<T>) => void) {
// T inferred from initial, not from onChange callback
}
createStore({ count: 0 }, (val) => {
// val: { count: number } — inferred from initial only
});NoInfer Neden Önemlidir
NoInfer olmadan TypeScript, T türünü her iki bağımsız değişkenden de çıkarmaya çalışır ve türü beklenmedik şekilde genişletebilir.
// Before NoInfer: T may be widened by the callback
function createStore<T>(initial: T, onChange: (val: T) => void) {}
createStore({ count: 0 }, (val: { count: number; extra: string }) => {});
// T widened to include extra — not what we wantKapanışlardan Sonra Korunan Daraltma
TS 5.4, daraltılan değişkene kapanıştan sonra atama yapılmadığında kapanışlar içindeki tür daraltmasını korur.
function process(val: string | null) {
if (!val) return;
// val: string
setTimeout(() => {
console.log(val.toUpperCase()); // TS 5.4: still string — not widened
}, 100);
}Object.groupBy Türleri
TS 5.4, ES2024'teki Object.groupBy ve Map.groupBy statik yöntemleri için türler ekledi.
const users = [
{ name: "Alice", role: "admin" },
{ name: "Bob", role: "user" },
];
const grouped = Object.groupBy(users, (u) => u.role);
// grouped: { [role: string]: { name: string; role: string }[] }Geliştirilmiş Bildirim Çıktısı
TS 5.4, eşlenmiş türler ve koşullu türler içeren karmaşık durumlarda bildirim dosyası çıktısını iyileştirdi ve oluşturulan .d.ts dosyalarındaki yanlış hataları azalttı.
// Fewer "Type ... is not assignable to type ..." errors
// in generated declaration files from TS 5.4 onwardÖzet: TS 5.3-5.4
TS 5.3: geliştirilmiş switch/case daraltması ve JSDoc @import desteği. TS 5.4: istenmeyen tür çıkarımı noktalarını engelleyen NoInfer, korunan kapanış daraltması ve Object.groupBy türleri.
Hızlı Kontrol
NoInfer neyi engeller?
Öğrendikleriniz
TS 5.3, switch/case daraltmasını iyileştirdi ve JSDoc içe aktarma türlerini ekledi. TS 5.4, çıkarım noktalarını denetlemek için NoInfer özelliğini getirdi, kapanışlar arasındaki daraltmayı korudu ve ES2024 için Object.groupBy türlerini ekledi.
Sıkça Sorulan Sorular
“TypeScript 5.3-5.4: Yeni Daraltma ve NoInfer” dersi ücretsiz mi?
Evet — “TypeScript 5.3-5.4: Yeni Daraltma ve NoInfer” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve TypeScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. TypeScript Academy kursu toplamda 4 dersten oluşur.
“TypeScript 5.3-5.4: Yeni Daraltma ve NoInfer” dersinde ne öğreneceğim?
NoInfer yardımcı türünü ve yeni switch/case daraltmasını uygulayın TypeScript Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
TypeScript Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te TypeScript Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“TypeScript 5.3-5.4: Yeni Daraltma ve NoInfer” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu TypeScript Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her TypeScript Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- TypeScript 5.0: Dekoratör Standardı ve const Tür Parametreleri
- TypeScript 5.1-5.2: Geliştirilmiş Çıkarım
- TypeScript 5.3-5.4: Yeni Daraltma ve NoInfer
- TypeScript 5.5+: Yalıtılmış Bildirimler ve Ötesi