TypeScript Academy · Pelajaran

TypeScript 5.0: Piawaian Penghias dan Parameter Jenis const

Gunakan cadangan penghias baharu dan parameter generik const.

Pelajaran 1 daripada 413 langkah

TypeScript 5.0: Piawaian Penghias dan Parameter Jenis const ialah pelajaran TypeScript Academy percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran TypeScript Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus TypeScript Academy merangkumi sejumlah 4 pelajaran.

Gambaran Keseluruhan TypeScript 5.0

TypeScript 5.0 memperkenalkan cadangan penghias TC39 yang distandardkan (Tahap 3), parameter jenis const, sintaks modul verbatim yang baharu, dan peningkatan prestasi yang ketara.

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

Penghias Tahap 3

TS 5.0 melaksanakan cadangan rasmi penghias TC39 Tahap 3 — berbeza daripada penghias percubaan warisan. experimentalDecorators: true tidak lagi diperlukan.

// 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) {} }

Objek Konteks Penghias

Penghias baharu menerima objek berjenis ClassDecoratorContext atau MethodDecoratorContext yang mengandungi metadata tentang elemen yang dihiasi.

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

Penghias Kaedah dalam TS 5.0

Penghias kaedah menerima kaedah tersebut dan ClassMethodDecoratorContext, menggantikan tandatangan lama (target, key, descriptor).

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;
  };
}

Parameter Jenis const

const pada parameter jenis menyebabkan TypeScript membuat inferens jenis harfiah untuk argumen, bukannya meluaskannya kepada jenis asas.

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]

Generik const berbanding as const

Parameter jenis const menggunakan kesan penyempitan secara automatik — pemanggil tidak perlu menambahkan as const pada setiap tempat panggilan.

// 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

Penyelesaian Modul oleh Alat Penggabung

TS 5.0 menambahkan moduleResolution: "bundler" untuk projek yang menggunakan Vite, esbuild atau alat penggabung yang serupa, yang mengendalikan penyelesaian modul sendiri.

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

verbatimModuleSyntax

verbatimModuleSyntax: true menguatkuasakan penggunaan import type bagi import yang hanya mengandungi jenis, sekali gus menghalang kebocoran import masa jalan.

// 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

Peningkatan Prestasi

TS 5.0 meningkatkan caching penghasilan jenis dan prestasi penyempitan, menjadikan projek besar lebih pantas tanpa perubahan pada kod.

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

Migrasi daripada Penghias Warisan

experimentalDecorators warisan masih berfungsi tetapi akhirnya akan ditamatkan penggunaannya. Beralihlah kepada penghias TC39 untuk keserasian masa hadapan.

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

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

Ringkasan: TypeScript 5.0

TypeScript 5.0 memperkenalkan penghias standard TC39, parameter jenis const untuk inferens jenis harfiah automatik, moduleResolution: "bundler", verbatimModuleSyntax, dan peningkatan prestasi yang ketara.

Semakan Ringkas

Apakah kesan const pada parameter jenis?

Perkara yang Dipelajari

TypeScript 5.0: penghias standard TC39 menggantikan penghias percubaan, parameter jenis const menyempitkan argumen kepada jenis harfiah secara automatik, moduleResolution: "bundler" menyokong alat binaan moden, dan verbatimModuleSyntax menguatkuasakan import type.

Percuma untuk bermula

Pelajari TypeScript dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
101
Pelajaran
352

Soalan Lazim

Adakah pelajaran “TypeScript 5.0: Piawaian Penghias dan Parameter Jenis const” percuma?

Ya — teks penuh “TypeScript 5.0: Piawaian Penghias dan Parameter Jenis const” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus TypeScript Academy, tingkat taraf kepada CoddyKit PRO. Kursus TypeScript Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “TypeScript 5.0: Piawaian Penghias dan Parameter Jenis const”?

Gunakan cadangan penghias baharu dan parameter generik const. Anda berlatih TypeScript Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan TypeScript Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran TypeScript Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.

Berapa lamakah pelajaran “TypeScript 5.0: Piawaian Penghias dan Parameter Jenis const” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran TypeScript Academy ini?

Ya. Setiap pelajaran TypeScript Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. TypeScript 5.0: Piawaian Penghias dan Parameter Jenis const
  2. TypeScript 5.1-5.2: Inferens yang Dipertingkat
  3. TypeScript 5.3-5.4: Pengecilan Baharu dan NoInfer
  4. TypeScript 5.5+: Deklarasi Terasing dan Seterusnya
← Kembali ke TypeScript Academy