Ответ 1
См редактировать внизу !!
Тестирование его в WebStorm с небольшим фрагментом, по-видимому, указывает на то, что *=
означает, что параметр не является необязательным и может иметь любой тип, где *
означает, что параметр имеет любой тип и является необязательным. Смотрите следующий пример с сгенерированным jsdoc из WebStorm:
/**
*
* @param createProps
* @returns {function(*=, *): void}
*/
export function a(createProps) {
return (callback, callback2) => console.log(callback);
}
Как видите, мы используем только первый параметр callback
и оставляем callback2
неиспользованным. Webstorm генерирует соответствующий jsdoc для этого.
Полный jsdoc для нашего примера выше в английских словах: Return an arrow function that takes two parameters, a **not** optional first parameter that can be of any type, and an optional second parameter that can be of any type. That function returns void
Return an arrow function that takes two parameters, a **not** optional first parameter that can be of any type, and an optional second parameter that can be of any type. That function returns void
Ссылка на документы:
http://usejsdoc.org/tags-type.html
Необязательный параметр
Необязательный параметр с именем foo.
@param {number} [foo]
//или же:
@param {number =} foo
Необязательный параметр foo со значением по умолчанию 1.
@param {число} [foo = 1]
РЕДАКТИРОВАТЬ: документы указывают, что =
означает optional parameter
но веб-шторм генерирует его с противоположным значением. Либо это неправильно задокументировано, либо WebStorm делает это неправильно. Я протестировал его в WebStorm 2018.1 Build # WS-181.4203.535, построенном 22 марта 2018 г.