Menerbitkan Pustaka Utilitas Tipe
Kemas dan bagikan tipe utilitas khusus di npm.
Menerbitkan Pustaka Utilitas Tipe adalah pelajaran TypeScript Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. 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 4 pelajaran total.
Apa Itu Pustaka Utilitas Tipe?
Pustaka utilitas tipe hanya mengekspor tipe TypeScript—tanpa kode saat runtime. Contoh yang populer mencakup type-fest, ts-essentials, dan utility-types.
// A type utility library exports types like:
export type DeepPartial<T> = T extends object
? { [K in keyof T]?: DeepPartial<T[K]> }
: T;Struktur Proyek
Buat tetap sederhana: satu src/index.ts yang mengekspor ulang semua utilitas, dengan tsconfig.json yang dikonfigurasi untuk hanya menghasilkan deklarasi.
// tsconfig.json
{
"compilerOptions": {
"declaration": true,
"emitDeclarationOnly": true,
"outDir": "dist",
"strict": true
}
}package.json untuk Paket yang Hanya Berisi Tipe
Atur bidang main dan types agar menunjuk ke deklarasi Anda. Atur sideEffects: false untuk penghapusan kode yang tidak digunakan.
{
"name": "@myorg/type-utils",
"version": "1.0.0",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"sideEffects": false,
"files": ["dist"]
}Menghasilkan Deklarasi
Jalankan tsc untuk menghasilkan berkas .d.ts. Untuk pustaka yang hanya berisi tipe, keluaran JS kosong atau minimal.
# Build declarations
npx tsc
# dist/index.d.ts is generatedVersi dan Catatan Perubahan
Ikuti pembuatan versi semantik: perubahan tipe yang memutus kompatibilitas menaikkan versi mayor, utilitas baru menaikkan versi minor, dan perbaikan menaikkan versi patch.
# Bump version
npm version minor
# Generate changelog with conventional-changelog or changesetsMempublikasikan ke npm
Gunakan npm publish atau pnpm publish. Untuk paket dengan cakupan di bawah suatu organisasi, pastikan Anda sudah masuk dan cakupannya telah ditetapkan.
npm login
npm publish --access public
# or for private: npm publish --access restrictedKompatibilitas Versi TypeScript
Dokumentasikan versi minimum TypeScript yang diperlukan utilitas Anda. Tipe kondisional rekursif memerlukan TS 4.1+, sedangkan Awaited sudah tersedia secara bawaan mulai TS 4.5+.
// package.json peerDependencies
{
"peerDependencies": {
"typescript": ">=4.5"
}
}Menguji Tipe dengan tsd
Gunakan paket tsd untuk menulis pengujian tingkat tipe yang dijalankan selama integrasi berkelanjutan guna memastikan utilitas Anda berperilaku dengan benar.
import { expectType } from "tsd";
import type { DeepPartial } from "@myorg/type-utils";
expectType<DeepPartial<{ a: { b: number } }>>({ a: {} });Dokumentasi dengan TSDoc
Tambahkan komentar JSDoc /** */ ke tipe Anda. Alat seperti TypeDoc membuat dokumentasi API dari komentar tersebut.
/**
* Makes all properties of T optional at every depth.
* @example type A = DeepPartial<{ x: { y: number } }> // { x?: { y?: number } }
*/
export type DeepPartial<T> = ...Distribusi dalam Repositori Tunggal
Dalam repositori tunggal, publikasikan paket tipe sebagai paket ruang kerja agar aplikasi lain menggunakannya melalui workspace:*, bukan melalui npm.
// Other package's package.json
{
"dependencies": {
"@myorg/type-utils": "workspace:*"
}
}Ringkasan: Mempublikasikan Pustaka Tipe
Pustaka utilitas tipe memiliki emitDeclarationOnly: true, mengekspor tipe dari src/index.ts, diberi versi dengan semver, diuji dengan tsd, didokumentasikan dengan TSDoc, serta dipublikasikan ke npm atau registri ruang kerja.
Pemeriksaan Singkat
Opsi tsconfig apa yang menghasilkan hanya berkas .d.ts tanpa keluaran JavaScript?
Yang Anda Pelajari
Mempublikasikan pustaka utilitas tipe memerlukan emitDeclarationOnly, kolom package.json yang tepat, pengujian tingkat tipe dengan tsd, komentar TSDoc, dan pembuatan versi semantik. Bagikan utilitas Anda kepada komunitas atau di seluruh repositori tunggal Anda.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Menerbitkan Pustaka Utilitas Tipe” gratis?
Ya — teks lengkap “Menerbitkan Pustaka Utilitas 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 4 pelajaran total.
Apa yang akan aku pelajari di “Menerbitkan Pustaka Utilitas Tipe”?
Kemas dan bagikan tipe utilitas khusus di npm. 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 4 dari 4.
Berapa lama pelajaran “Menerbitkan Pustaka Utilitas 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
- DeepPartial dan DeepReadonly
- Utilitas Flatten dan UnwrapPromise
- TupleToUnion dan UnionToIntersection
- Menerbitkan Pustaka Utilitas Tipe