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(atauexportsper 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
exportssubjalur dengantypesper entri. - Jaga agar tipe internal tidak diekspor atau gunakan
@internal. - Gunakan skrip
prepareuntuk membangun sebelumnpm 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
- Dasar .d.ts; export type vs export
- Menerbitkan paket dengan tipe