javascript - typescript projesinde özel tipleri nerede saklayacağımı anlayamıyorum
Typescript harika, tipler harika, ama bazı senaryolar için bu pek kolay değil.
Birkaç gündür TypeScript ile uğraşıyorum, projenin tamamında kullanılacak tiplerimi nereye yerleştireceğimi anlayamıyorum.
Bu türlerin *.ts dosyasına dahil edilebileceğini ve derlendiğinde silineceklerini biliyorum. Ama, eğer o type'a başka bir modülde ihtiyacım olursa, onu göreli yol ile import etmem gerekiyor. Ama bu çirkin görünüyor.. Eğer o dosyayı başka bir konuma taşırırsam, projenin yarısını kıracağım.
Bu yüzden türlerin kullanıldığı yerden bağımsız olması gerektiği fikrini benimsedim.
Deklarasyon birleştirmeyi okudum ve görünüşe göre istediğim şey bu.
Hedeflerim:
Başka bir TypeScript projesinde ve (belki) saf JavaScript projesinde kullanılacak bir kütüphane (Node.js için) oluşturmak istiyorum.
Açıkça, kütüphanemin çıktısı *.js ve *.d.ts dosyaları olacak. *.ts dosyalarını yayınlamak istemiyorum çünkü onları bir kereliğine derlemek istiyorum ve saf JS projelerinde kullanılabilir olmalı (orada TypeScript derleyicisini getirmek istemiyorum)
Bir dosya (modül), tek bir fonksiyon içerir. Bu fonksiyonun input ve output vardır. input ve output türleri d.ts dosyasında yazılmıştır
declare namespace library.foo {
type main = () => out
type out = {
name: string
}
}
ve deklarasyonun yanına uygulamanın bulunduğu dosyayı yerleştiririm (foo.ts):
createFoo: library.foo.main = () {
return { name: "baz"}
}
tsc i çalıştırdıktan sonra dist klasöründe foo.d.ts için şu çıktıyı görüyorum:
declare const createFoo: library.foo.main
El yazısıyla hazırladığım beyan dosyası kaynak klasörde kaldı ve dağıtım klasöründe değil.
Tüm tiplerimle tek bir bildirim dosyası üretecek bir tsc seçeneği var mı? Bu dosya, üretilen .js dosyaları ve tüm .t.ds dosyaları ile birlikte yayınlanacak.