Satır içi JSDoc kullanılarak parametrenin isteğe bağlı olduğu nasıl belirtilir?


119

İçin JSDoc wiki göre @param bir @param gösterebilir kullanarak isteğe bağlıdır

/**
    @param {String} [name]
*/
function getPerson(name) {
}

ve kullanarak satır içi bir parametre belirtebilirsiniz

function getPerson(/**String*/ name) {
}

Ve bunları aşağıdaki gibi birleştirebilirim, bu iyi çalışıyor.

/**
    @param [name]
*/
function getPerson(/**String*/name) {
}

Ama mümkünse hepsini inline yapmanın bir yolu olup olmadığını bilmek isterim.

Yanıtlar:


123

Gönderen Resmi belgelerin :

İsteğe bağlı parametre

Foo adlı isteğe bağlı bir parametre.

@param {number} [foo]
// or:
@param {number=} foo

Varsayılan değeri 1 olan isteğe bağlı bir foo parametresi.

@param {number} [foo=1]

7
Sıralı olarak nasıl yapılacağını soruyordum. Sağladığınız örnek sorumda gösterdiğim örnekle aynı görünüyor.
studgeek

67

Biraz kazı yaptıktan sonra bunların da iyi olduğunu buldum

/**
 * @param {MyClass|undefined}
 * @param {MyClass=}
 * @param {String} [accessLevel="author"] The user accessLevel is optional.
 * @param {String} [accessLevel] The user accessLevel is optional.
 */

Şundan biraz daha görsel olarak çekici function test(/**String=*/arg) {}


9
Bunlar geçerlidir (ve JSDoc yardımında belgelenmiştir), ancak satır içi değiller - aradığım şey buydu.
studgeek

Soru satır içi JSDoc gösterimi ile ilgili. Bu ilginç bir bilgi, ancak soruyu cevaplamıyor
Ken Bellows

51

Google Closure Compiler türü ifadeleri kullanarak bunu yapmanın bir yolunu buldum . Türün arkasına şu şekilde bir eşittir işareti koyarsınız: function test(/**String=*/arg) {}


10
WebStorm / IntellIDEA bu ​​gösterimi destekliyor
Peter Aron Zentai

3
Evet, bu yüzden yanıt olarak işaretlemek için yeterince kabul gördüğünü düşünüyorum.
studgeek

4
@PeterAronZentai, ekleyeceğim WebStorm / IntelliIDEA bunun için bir özellik isteği koymamın bir sonucu olarak destekledi :). Artık Google Closure Compiler türü ifadelerin çoğunu destekliyorlar ki bu harika.
studgeek

1
Opsiyonel ikinci bir parametre için benim için çalışmıyor.
DaveWalley

3

İşlev bağımsız değişkenlerinde satır içi tür açıklamaları kullanıyorsanız ve bir işlev bağımsız değişkenini bu gösterimde isteğe bağlı olarak nasıl işaretleyeceğinizi merak ediyorsanız, isteğe bağlı bağımsız değişkenlere varsayılan değerler atamanın işe yaradığını buldum. Varsayılanın olmasını undefinedistiyorsanız, onu da açıkça belirlemeniz gerekir, aksi takdirde bağımsız değişken isteğe bağlı olarak işaretlenmez (önceden isteğe bağlı bağımsız değişkenler olsa bile):

function demo(
  /** @type {String} */ mandatory,
  /** @type {Number} */ optional1 = 0,
  /** @type {Number} optional2 = undefined,
)

IDE'nizin üzerine demogelirseniz, şimdi her ikisini de görmeli optional1ve optional2isteğe bağlı olarak görünmelisiniz . Bağımsız ?değişken adından sonra (TypeScript gösterimi) gösterilen VSCode'da. Sizden kaldırırsanız = undefined, optional2yalnızca optional1isteğe bağlı olduğunu göreceksiniz ki bu da tabii ki saçmadır, bu nedenle buradaki varsayılan değer yukarıdaki paragrafta ima ettiğim gibi açık olmalıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.