Лично я бы предложил TypeScript поверх JSDo c.
Тем не менее, попробовать что-то подобное? (в JSDo c нет тега @import
).
// path/to/UiStore.js
/**
* @typedef UiStore
* @type {object}
* @property {string} foo - description for foo
* @property {string} bar - description for bar
*/
// path/to/another.js
/** @typedef {import("path/to/UiStore").UiStore} UiStore */
/** @type {UiStore} */
const uiStore = {
foo: 'hello',
bar: 'world',
};
С mobx-state-tree это работает так:
В файле UiStore. js:
export const UiStoreType = UiStore.Type
и затем в пути / к / другому. js
/**
* @typedef Props
* @prop { import("../stores/UiStore").UiStoreType } uiStore
* @prop { import("../stores/DbStore").DbStoreType } dbStore
*/