// @noEmit: true // @allowJs: true // @checkJs: true // @strict: true // @Filename: a.js /** @typedef {Object} App * @property {string} name * @property {Object} icons * @property {string} icons.image32 * @property {string} icons.image64 */ var ex; /** @type {App} */ const app = { name: 'name', icons: { image32: 'x.png', image64: 'y.png', } } /** @typedef {Object} Opp * @property {string} name * @property {Object} oops * @property {string} horrible * @type {string} idea */ var intercessor = 1 /** @type {Opp} */ var mistake; /** @typedef {Object} Upp * @property {string} name * @property {Object} not * @property {string} nested */ /** @type {Upp} */ var sala = { name: 'uppsala', not: 0, nested: "ok" }; sala.name sala.not sala.nested