Bir Tür Yardımcı Kitaplığı Yayımlama
Özel yardımcı türleri npm'de paketleyip paylaşın
Bir Tür Yardımcı Kitaplığı Yayımlama, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 4 dersinin 4. 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.
Tür Yardımcıları Kitaplığı Nedir?
Bir tür yardımcıları kitaplığı yalnızca TypeScript türlerini dışa aktarır — çalışma zamanı kodu içermez. Popüler örnekler arasında type-fest, ts-essentials ve utility-types bulunur.
// A type utility library exports types like:
export type DeepPartial<T> = T extends object
? { [K in keyof T]?: DeepPartial<T[K]> }
: T;Proje Yapısı
Basit tutun: tüm yardımcı programları yeniden dışa aktaran tek bir src/index.ts dosyası kullanın ve yalnızca bildirimleri yayımlayacak şekilde tsconfig.json yapılandırın.
// tsconfig.json
{
"compilerOptions": {
"declaration": true,
"emitDeclarationOnly": true,
"outDir": "dist",
"strict": true
}
}Yalnızca Türler İçeren Paket için package.json
main ve types alanlarını bildirimlerinizi gösterecek şekilde ayarlayın. Kullanılmayan kodun ayıklanabilmesi için sideEffects: false ayarını yapın.
{
"name": "@myorg/type-utils",
"version": "1.0.0",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"sideEffects": false,
"files": ["dist"]
}Bildirimleri Oluşturma
tsc çalıştırarak .d.ts dosyalarını yayımlayın. Yalnızca türlerden oluşan bir kitaplıkta JS çıktısı boş veya en az düzeydedir.
# Build declarations
npx tsc
# dist/index.d.ts is generatedSürümleme ve Değişiklik Günlükleri
Anlamsal sürümlemeyi izleyin: geriye dönük uyumsuz tür değişiklikleri ana sürümü, yeni yardımcı programlar alt sürümü, düzeltmeler ise yama sürümünü artırır.
# Bump version
npm version minor
# Generate changelog with conventional-changelog or changesetsnpm'e Yayımlama
npm publish veya pnpm publish kullanın. Bir kuruluş altındaki kapsamlı paketler için oturum açtığınızdan ve kapsamın ayarlandığından emin olun.
npm login
npm publish --access public
# or for private: npm publish --access restrictedTypeScript Sürüm Uyumluluğu
Yardımcı programlarınızın gerektirdiği minimum TypeScript sürümünü belgeleyin. Özyinelemeli koşullu türler TS 4.1 ve üzerini, Awaited ise TS 4.5 ve üzerini gerektirir.
// package.json peerDependencies
{
"peerDependencies": {
"typescript": ">=4.5"
}
}tsd ile Türleri Sınama
Yardımcı programlarınızın doğru çalıştığından emin olmak için sürekli tümleştirme sırasında çalışan tür düzeyi sınamalar yazmak üzere tsd paketini kullanın.
import { expectType } from "tsd";
import type { DeepPartial } from "@myorg/type-utils";
expectType<DeepPartial<{ a: { b: number } }>>({ a: {} });TSDoc ile Belgelendirme
Türlerinize /** */ JSDoc açıklamaları ekleyin. TypeDoc gibi araçlar bu açıklamalardan API belgeleri üretir.
/**
* Makes all properties of T optional at every depth.
* @example type A = DeepPartial<{ x: { y: number } }> // { x?: { y?: number } }
*/
export type DeepPartial<T> = ...Monorepo Dağıtımı
Bir monorepo'da türler paketini, diğer uygulamaların npm yerine workspace:* aracılığıyla kullanabilmesi için çalışma alanı paketi olarak yayımlayın.
// Other package's package.json
{
"dependencies": {
"@myorg/type-utils": "workspace:*"
}
}Özet: Tür Kitaplıklarını Yayımlama
Bir tür yardımcı programı kitaplığı şunları içerir: emitDeclarationOnly: true, src/index.ts dosyasından tür dışa aktarımları, anlamsal sürümlemeyle yapılan sürümleme, tsd ile gerçekleştirilen sınamalar, TSDoc ile hazırlanmış belgeler ve npm'e veya bir çalışma alanı kayıt defterine yayımlama.
Kısa Denetim
Hangi tsconfig seçeneği yalnızca JavaScript çıktısı olmadan .d.ts dosyaları üretir?
Öğrendikleriniz
Bir tür yardımcı programı kitaplığını yayımlamak için emitDeclarationOnly, uygun package.json alanları, tsd ile tür düzeyi sınamalar, TSDoc açıklamaları ve anlamsal sürümleme gerekir. Yardımcı programlarınızı toplulukla veya monorepo'nuz genelinde paylaşın.
Sıkça Sorulan Sorular
“Bir Tür Yardımcı Kitaplığı Yayımlama” dersi ücretsiz mi?
Evet — “Bir Tür Yardımcı Kitaplığı Yayımlama” 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.
“Bir Tür Yardımcı Kitaplığı Yayımlama” dersinde ne öğreneceğim?
Özel yardımcı türleri npm'de paketleyip paylaşı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 4. dersidir.
“Bir Tür Yardımcı Kitaplığı Yayımlama” 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
- DeepPartial ve DeepReadonly
- Flatten ve UnwrapPromise Yardımcıları
- TupleToUnion ve UnionToIntersection
- Bir Tür Yardımcı Kitaplığı Yayımlama