0Pricing
TypeScript Academy · Ders

TypeScript 5.0: Dekoratör Standardı ve const Tür Parametreleri

Yeni dekoratör önerisini ve const genel parametrelerini kullanın

TypeScript 5.0: Dekoratör Standardı ve const Tür Parametreleri, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 4 dersinin 1. 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.0 Genel Bakışı

TypeScript 5.0, standartlaştırılmış TC39 dekoratör önerisini (Aşama 3), const tür parametrelerini, yeni verbatim modül söz dizimini ve önemli performans iyileştirmelerini getirdi.

// TS 5.0 release: March 2023
// npm install typescript@5

Aşama 3 Dekoratörleri

TS 5.0, resmi TC39 Aşama 3 dekoratör önerisini uygular — eski deneysel dekoratörlerden farklıdır. Artık experimentalDecorators: true gerekmez.

// New standard decorator — no experimentalDecorators flag needed
function logged(target: Function, ctx: ClassDecoratorContext) {
  return class extends (target as any) {
    constructor(...args: any[]) {
      console.log("Creating", target.name);
      super(...args);
    }
  };
}

@logged
class User { constructor(public name: string) {} }

Dekoratör Bağlam Nesnesi

Yeni dekoratörler, dekore edilen öğeyle ilgili meta verileri içeren tür belirtilmiş bir ClassDecoratorContext veya MethodDecoratorContext nesnesi alır.

function sealed(_: Function, ctx: ClassDecoratorContext) {
  ctx.addInitializer(function(this: any) {
    Object.seal(this);
  });
}

TS 5.0'da Yöntem Dekoratörleri

Yöntem dekoratörleri, eski (target, key, descriptor) imzasının yerine yöntemi ve bir ClassMethodDecoratorContext alır.

function measure(_: Function, ctx: ClassMethodDecoratorContext) {
  return function(this: any, ...args: any[]) {
    const start = performance.now();
    const result = (_.apply as any)(this, args);
    console.log(ctx.name, performance.now() - start, "ms");
    return result;
  };
}

const Tür Parametreleri

Bir tür parametresinin üzerinde kullanılan const, TypeScript'in temel türe genişletmek yerine bağımsız değişkenler için değişmez türler çıkarmasını sağlar.

function identity<const T>(val: T): T { return val; }
const a = identity("hello");      // type: "hello" (not string)
const b = identity([1, 2, 3]);    // type: readonly [1, 2, 3]

const Jenerikleri ve as const

const tür parametreleri daraltma etkisini otomatik olarak uygular — çağıranların her çağrı noktasına as const eklemesi gerekmez.

// Without const param: callers need as const
function makeRoute<T extends string>(path: T) { return path; }
const r1 = makeRoute("/home" as const); // "/home"

// With const param: automatic
function makeRoute2<const T extends string>(path: T) { return path; }
const r2 = makeRoute2("/home"); // "/home" — no as const needed

Paketleyici Modül Çözümlemesi

TS 5.0, modül çözümlemesini kendileri gerçekleştiren Vite, esbuild veya benzeri paketleyicileri kullanan projeler için moduleResolution: "bundler" seçeneğini ekledi.

{
  "compilerOptions": {
    "module": "ESNext",
    "moduleResolution": "bundler"
  }
}

verbatimModuleSyntax

verbatimModuleSyntax: true, yalnızca tür içeren içe aktarmaların import type kullanmasını zorunlu kılar ve çalışma zamanına içe aktarma sızmasını önler.

// tsconfig.json
{ "compilerOptions": { "verbatimModuleSyntax": true } }

// Now this errors: must be import type
import { User } from "./types"; // Error if User is only a type
import type { User } from "./types"; // OK

Performans İyileştirmeleri

TS 5.0, tür örneklendirme önbelleklemesini ve daraltma performansını iyileştirerek kod değişikliği yapmadan büyük projeleri hızlandırdı.

# TS 5.0 compile benchmarks: ~10-15% faster on large projects

Eski Dekoratörlerden Geçiş

Eski experimentalDecorators hâlâ çalışır, ancak sonunda kullanımdan kaldırılacaktır. Gelecekteki uyumluluk için TC39 dekoratörlerine geçin.

// Legacy: requires experimentalDecorators: true
@Component({ selector: "app-root" })
class AppComponent {}

// New TC39 decorator: no flag needed (but Angular/NestJS need updates)

Özet: TypeScript 5.0

TypeScript 5.0, TC39 standart dekoratörlerini, otomatik değişmez tür çıkarımı sağlayan const tür parametrelerini, moduleResolution: "bundler" seçeneğini, verbatimModuleSyntax özelliğini ve önemli performans kazanımlarını sundu.

Hızlı Kontrol

Bir tür parametresinin üzerindeki const ne yapar?

Öğrendikleriniz

TypeScript 5.0: standart TC39 dekoratörleri deneysel dekoratörlerin yerini alır, const tür parametreleri bağımsız değişkenleri otomatik olarak değişmez türlere daraltır, moduleResolution: "bundler" modern derleme araçlarını destekler ve verbatimModuleSyntax özelliği import type kullanımını zorunlu kılar.

Sıkça Sorulan Sorular

“TypeScript 5.0: Dekoratör Standardı ve const Tür Parametreleri” dersi ücretsiz mi?

Evet — “TypeScript 5.0: Dekoratör Standardı ve const Tür Parametreleri” 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.0: Dekoratör Standardı ve const Tür Parametreleri” dersinde ne öğreneceğim?

Yeni dekoratör önerisini ve const genel parametrelerini kullanı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 1. dersidir.

“TypeScript 5.0: Dekoratör Standardı ve const Tür Parametreleri” 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

  1. TypeScript 5.0: Dekoratör Standardı ve const Tür Parametreleri
  2. TypeScript 5.1-5.2: Geliştirilmiş Çıkarım
  3. TypeScript 5.3-5.4: Yeni Daraltma ve NoInfer
  4. TypeScript 5.5+: Yalıtılmış Bildirimler ve Ötesi
← TypeScript Academy Sayfasına Dön