JSDoc, JavaScript kaynak kod dosyalarını notlamak için kullanılan bir işaretleme dilidir. Kodu ve API'sini belgelendirmek için bir yol sağlar. Bu cheatsheet, ana JSDoc etiketlerini ve kullanımlarını kapsar.
Temel bir JSDoc yorumu şu şekilde görünür:
/**
* Bu bir JSDoc yorumudur
*/
/**
* İki sayının toplamını hesaplar
* @param {number} a - İlk sayı
* @param {number} b - İkinci sayı
* @returns {number} a ve b'nin toplamı
*/
function sum(a, b) {
return a + b;
}
/**
* Bir kitabı temsil eder
* @class
*/
class Book {
/**
* Bir kitap oluşturur
* @param {string} title - Kitabın başlığı
* @param {string} author - Kitabın yazarı
*/
constructor(title, author) {
this.title = title;
this.author = author;
}
/**
* Kitabın başlığını alır
* @returns {string} Kitabın başlığı
*/
getTitle() {
return this.title;
}
}
Bir fonksiyon parametresini tanımlamak için kullanılır.
/**
* @param {string} name - Kişinin adı
* @param {number} [age] - Kişinin yaşı (isteğe bağlı)
* @param {boolean} [isStudent=false] - Kişinin öğrenci olup olmadığı (varsayılan: false)
*/
function describePerson(name, age, isStudent) {
// Fonksiyon gövdesi
}
Bir fonksiyonun döndürdüğü değeri açıklar.
/**
* @returns {Promise<string>} Bir selamlaşma ile çözümlenen bir promise
*/
async function getGreeting() {
return "Merhaba, Dünya!";
}
Fırlatılabilecek istisnaları belgeler.
/**
* @throws {Error} Girdi bir sayı değilse
*/
function squareRoot(x) {
if (typeof x !== 'number') {
throw new Error('Girdi bir sayı olmalıdır');
}
return Math.sqrt(x);
}
Bir değişkenin veya özelliğin türünü belirtir.
/** @type {string} */
let name = "John Doe";
/** @type {number[]} */
let scores = [98, 85, 91];
Özel bir tür tanımlar.
/**
* @typedef {Object} Person
* @property {string} name - Kişinin adı
* @property {number} age - Kişinin yaşı
*/
/** @type {Person} */
let person = { name: "John", age: 30 };
Bir callback fonksiyonunu belgeler.
/**
* @callback CompareCallback
* @param {*} a - Karşılaştırılacak ilk öğe
* @param {*} b - Karşılaştırılacak ikinci öğe
* @returns {number} a < b ise negatif, a > b ise pozitif, eşitse sıfır
*/
/**
* Bir karşılaştırma fonksiyonu kullanarak bir diziyi sıralar
* @param {Array} arr - Sıralanacak dizi
* @param {CompareCallback} compareFunc - Karşılaştırma fonksiyonu
* @returns {Array} Sıralanmış dizi
*/
function customSort(arr, compareFunc) {
return arr.sort(compareFunc);
}
Bir fonksiyonun asenkron olduğunu belirtir.
/**
* @async
* @returns {Promise<string>} Veri ile çözümlenen bir promise
*/
async function fetchData() {
// Fonksiyon gövdesi
}
Bir fonksiyonu veya metodu kullanım dışı olarak işaretler.
/**
* @deprecated sürüm 2.0.0'dan itibaren, yerine yeniFonksiyon() kullanın
*/
function oldFunction() {
// Fonksiyon gövdesi
}
Bir üyenin görünürlüğünü belirtir.
class MyClass {
/**
* @private
*/
#privateMethod() {
// Metod gövdesi
}
/**
* @protected
*/
_protectedMethod() {
// Metod gövdesi
}
/**
* @public
*/
publicMethod() {
// Metod gövdesi
}
}
Bir fonksiyon veya sınıfın nasıl kullanılacağına dair örnek sağlar.
/**
* İki sayıyı toplar
* @param {number} a - İlk sayı
* @param {number} b - İkinci sayı
* @returns {number} a ve b'nin toplamı
* @example
* // 5 döndürür
* add(2, 3)
*/
function add(a, b) {
return a + b;
}
Başka bir sembole veya kaynağa atıfta bulunur.
/**
* İlgili işlevsellik için {@link otherFunction} bakınız
*/
function someFunction() {
// Fonksiyon gövdesi
}
Tamamlanması gereken görevleri belirtir.
/**
* @todo Hata yönetimini uygulayın
* @todo Negatif sayıları destekleyin
*/
function calculateSquareRoot(x) {
return Math.sqrt(x);
}
Bir fonksiyon veya özelliğin ne zaman eklendiğini belirtir.
/**
* @since 1.5.0
*/
function newFeature() {
// Fonksiyon gövdesi
}
JSDoc'un belgelendirme oluştururken takip eden kodu göz ardı etmesini söyler.
/**
* @ignore
*/
function internalHelper() {
// Fonksiyon gövdesi
}
2024 © Tüm hakları saklıdır - buraxta.com