`deno doc`, belge üretici
Örnekler
deno doc
, bir veya daha fazla kaynak dosyasının ardından geldiğinde, her modülün dışa aktarılan üyeleri için JSDoc belgesini yazdıracaktır.
Örneğin, içeriği olan bir add.ts
dosyası verildiğinde:
/**
* x ve y'yi toplar.
* @param {number} x
* @param {number} y
* @returns {number} x ile y'nin toplamı
*/
export function add(x: number, y: number): number {
return x + y;
}
Deno doc
komutunu çalıştırmak, fonksiyonun JSDoc yorumunu stdout
'a yazdırır:
deno doc add.ts
function add(x: number, y: number): number
x ve y'yi toplar. @param {number} x @param {number} y @returns {number} x ile y'nin toplamı
Hata Denetimi
Belgeniz oluşturulurken sorunları kontrol etmek için --lint
bayrağını kullanabilirsiniz. deno doc
, üç tür problem belirler:
- Dışa aktarılan bir türün kök modülden dışa aktarılmamış bir türü referans alması için hata.
- API kullanıcılarının API'nin kullandığı tüm türlere erişimini sağlar. Bu, türü kök modülden dışa aktararak (komut satırında
deno doc
için belirtilen dosyalardan biri) veya türü@internal
jsdoc etiketi ile işaretleyerek bastırılabilir.
- API kullanıcılarının API'nin kullandığı tüm türlere erişimini sağlar. Bu, türü kök modülden dışa aktararak (komut satırında
- Halka açık bir türde eksik dönüş türü veya özellik türü için hata.
deno doc
'un dönüş/özellik türünü görüntülemesini sağlar ve tür doğrulama performansını artırır.
- Halka açık bir türde eksik JS belge yorumun için hata.
- Kodun belgelenmesini sağlar. Bunu bir jsdoc yorumu ekleyerek veya belgelerden hariç tutmak için bir
@ignore
jsdoc etiketi ile bastırabilirsiniz. Alternatif olarak, belgelerde kalmak için bir@internal
etiketi ekleyebilir, ancak bunun dahili olduğunu belirtirsiniz.
- Kodun belgelenmesini sağlar. Bunu bir jsdoc yorumu ekleyerek veya belgelerden hariç tutmak için bir
Örneğin:
interface Person {
name: string;
// ...
}
export function getName(person: Person) {
return person.name;
}
$ deno doc --lint mod.ts
Type 'getName' references type 'Person' which is not exported from a root module.
Eksik JS belge yorumu.
Eksik dönüş türü.
at file:///mod.ts:6:1
Bu denetimler, daha iyi belgeler yazmanıza ve projelerinizde tür doğrulamayı hızlandırmanıza yardımcı olmak içindir. Herhangi bir sorun bulunursa, program sıfırdan farklı bir çıkış kodu ile çıkar ve çıktı standart hataya raporlanır.
Desteklenen JSDoc etiketleri
Deno, büyük bir JSDoc etiket setini uygular, aynı zamanda JSDoc spesifikasyonunda belirtilmemiş ek etiketler de vardır. Aşağıdaki etiketler desteklenmektedir:
constructor
/class
: bir fonksiyonu bir yapıcı olarak işaretler.ignore
: bir sembolün çıktıya dahil edilmesini göz ardı eder.- internal: bir sembolü yalnızca dahili olarak kullanılacak şekilde işaretler. HTML üreticisinde, sembol listede yer almaz, ancak hala oluşturulabilir ve bir dahili olmayan sembol ona bağlantı verirse erişilebilir.
public
: bir sembolü halka açık API olarak değerlendirin. TypeScriptpublic
anahtar sözcüğünün karşılığıdır.private
: bir sembolü özel API olarak değerlendirin. TypeScriptprivate
anahtar sözcüğünün karşılığıdır.protected
: bir özellik veya yöntemi korunmuş API olarak değerlendirin. TypeScriptprotected
anahtar sözcüğünün karşılığıdır.readonly
: bir sembolü yalnızca okunur olarak işaretler, yani üzerine yazılabilir değildir.experimental
: bir sembolü deneysel olarak işaretler, yani API değişebilir veya kaldırılabilir, veya davranış iyi tanımlanmamıştır.deprecated
: bir sembolü kullanım dışı olarak işaretler, yani artık desteklenmez ve gelecekteki bir sürümde kaldırılabilir.module
: bu etiket, üst düzey bir JSDoc yorumuna tanımlanabilir, bu da o yorumun dosya için olduğunu belirtir.category
/group
: bir sembolün belirli bir kategori/gruba ait olduğunu işaretler. Bu, çeşitli sembolleri bir araya grublamak için yararlıdır.see
: sembolle ilgili bir dış referans tanımlar.example
: sembol için bir örnek tanımlar.tags
: bir sembol için ek özel etiketler tanımlar, virgülle ayrılmış bağımsız bir liste ile.since
: sembolün ne zamandan beri mevcut olduğunu tanımlar.callback
: bir geri çağırma tanımlar.template
/typeparam
/typeParam
: bir geri çağırma tanımlar.prop
/property
: bir sembolde bir özelliği tanımlar.typedef
: bir tür tanımlar.param
/arg
/argument
: bir işlevde bir parametre tanımlar.return
/returns
: bir işlevin dönüş türünü ve/veya yorumunu tanımlar.throws
/exception
: bir işlev çağrıldığında neyi istisna ettiğini tanımlar.enum
: bir nesneyi bir enum olarak tanımlar.extends
/augments
: bir işlevin uzandığı bir tür tanımlar.this
: bir işlevdethis
anahtar kelimesinin neyi ifade ettiğini tanımlar.type
: bir sembolün türünü tanımlar.default
: bir değişken, özellik veya alan için varsayılan değeri tanımlar.
HTML çıktısı
Statik bir site oluşturmak için --html
bayrağını kullanın.
$ deno doc --html --name="Benim kütüphanem" ./mod.ts
$ deno doc --html --name="Benim kütüphanem" --output=./documentation/ ./mod.ts
$ deno doc --html --name="Benim kütüphanem" ./sub1/mod.ts ./sub2/mod.ts
Oluşturulan belge, her statik site barındırma hizmetine dağıtılabilecek çok sayfalı bir statik sitedir.
Oluşturulan sitede istemci tarafı arama mevcuttur, ancak kullanıcının tarayıcısı JavaScript'i devre dışı bırakmışsa mevcut değildir.
JSON çıktısı
Belgeleri JSON formatında çıktı almak için --json
bayrağını kullanın. Bu JSON formatı, deno doc web sitesi tarafından tüketilir ve modül belgelerini oluşturmak için kullanılır.