Это более или менее зависит от того, какую IDE вы используете. Я использую VSCode, и он очень хорошо понимает типы, мне нужно только делать явные комментарии jsdo c в определенных ситуациях.
Итак, с экспортом по умолчанию вместо экспорта объекта, например:
export default {
/** @var SomeClass */
someObject: {},
/** @var SomeOtherClass
someOtherObject: {},
/** String[] */
evenMore: []
<etc...>
}
вам нужно сделать:
const export_me = {
/** @var SomeClass */
someObject: {},
/** @var SomeOtherClass
someOtherObject: {},
/** String[] */
evenMore: []
}
export default export_me
А с функциями, если вы не деструктурируете их в параметрах, вам нужно будет сделать что-то вроде этого
/**
@typedef {{
name: string,
age: number
}} Person
@param {Person} person
@param {number} speed
@returns {number}
*/
export function runningMan (person, speed) {
const {
name,
age
} = person;
}
Я не использую @property
, потому что он не работает в vscode.