0Pricing
TypeScript Academy · Pelajaran

Menerbitkan paket dengan tipe

Terbitkan pustaka dengan pengetikan kelas utama: hasilkan .d.ts dengan tsc, arahkan package.json ke sana, tangani ekspor ESM/CJS, dan lakukan pengujian sebelum menerbitkan.

Menerbitkan paket dengan tipe adalah pelajaran TypeScript Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 2. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar TypeScript Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus TypeScript Academy mencakup 2 pelajaran total.

Pendahuluan

Tujuan: Menerbitkan paket dengan pengetikan yang kuat. Anda akan menghasilkan berkas .d.ts, menghubungkan package.json dengan benar, mendukung ESM/CJS melalui exports, dan memverifikasi dengan tsc --noEmit dalam aplikasi contoh.

  • Menghasilkan deklarasi
  • Mengarahkan types (atau exports per entri)
  • Melakukan pengujian sebelum menerbitkan

Hasilkan deklarasi

Aktifkan declaration untuk menghasilkan .d.ts. Gunakan konfigurasi pembangunan khusus agar tsconfig aplikasi tetap ketat dan bersih.

// tsconfig.build.json
{
  "compilerOptions": {
    "target": "ES2020",
    "module": "ESNext",
    "declaration": true,
    "emitDeclarationOnly": false,
    "outDir": "dist",
    "rootDir": "src",
    "stripInternal": true
  },
  "include": ["src/**/*"]
}

package.json tipe/ekspor

Arahkan types ke deklarasi utama. Untuk ekspor subjalur, sertakan entri tipe agar editor dapat menemukan .d.ts per modul.

// package.json
{
  "name": "@acme/widgets",
  "version": "1.0.0",
  "type": "module",
  "main": "./dist/index.cjs",
  "module": "./dist/index.js",
  "types": "./dist/index.d.ts",
  "exports": {
    ".": {
      "types": "./dist/index.d.ts",
      "import": "./dist/index.js",
      "require": "./dist/index.cjs"
    },
    "./utils": {
      "types": "./dist/utils.d.ts",
      "import": "./dist/utils.js",
      "require": "./dist/utils.cjs"
    }
  }
}

Sumber dibandingkan .d.ts

Pastikan API publik Anda memiliki tipe yang baik. Deklarasi mencerminkan tanda tangan sumber agar pengguna mendapatkan pelengkapan otomatis dan pemeriksaan.

// src/index.ts
export interface Widget { id: string; name: string }
export function greet(w: Widget): string { return `Hello, ${w.name}` }

// dist/index.d.ts (emitted)
export interface Widget { id: string; name: string }
export declare function greet(w: Widget): string

Uji di proyek pengguna

Sebelum menerbitkan, lakukan pengujian dalam proyek pengguna kecil dengan tsc --noEmit. Harapkan kesalahan yang tepat untuk penggunaan yang tidak valid.

// consumer/tsconfig.json
{
  "compilerOptions": { "strict": true, "target": "ES2020", "module": "ESNext" },
  "include": ["./src"]
}

// consumer/src/app.ts
import { greet } from "@acme/widgets"

// Type checks in the consumer
console.log(greet({ id: "w1", name: "Ada" }))
// @ts-expect-error: missing name
// console.log(greet({ id: "w1" }))

Kiat & jebakan

Kiat:

  • Utamakan exports subjalur dengan types per entri.
  • Jaga agar tipe internal tidak diekspor atau gunakan @internal.
  • Gunakan skrip prepare untuk membangun sebelum npm publish.

Pemeriksaan penerbitan tipe

Pemeriksaan singkat: Apa penyiapan minimal yang benar untuk menyediakan tipe?

Ringkasan

Ringkasan: Hasilkan deklarasi dengan tsc, hubungkan package.json (types/exports), dan verifikasi dalam aplikasi pengguna sebelum menerbitkan.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Menerbitkan paket dengan tipe” gratis?

Ya — teks lengkap “Menerbitkan paket dengan tipe” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus TypeScript Academy, upgrade ke CoddyKit PRO. Kursus TypeScript Academy mencakup 2 pelajaran total.

Apa yang akan aku pelajari di “Menerbitkan paket dengan tipe”?

Terbitkan pustaka dengan pengetikan kelas utama: hasilkan .d.ts dengan tsc, arahkan package.json ke sana, tangani ekspor ESM/CJS, dan lakukan pengujian sebelum menerbitkan. Kamu berlatih TypeScript Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai TypeScript Academy?

Tidak diperlukan pengalaman sebelumnya. TypeScript Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 2.

Berapa lama pelajaran “Menerbitkan paket dengan tipe” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran TypeScript Academy ini?

Ya. Setiap pelajaran TypeScript Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Dasar .d.ts; export type vs export
  2. Menerbitkan paket dengan tipe
← Kembali ke TypeScript Academy