// @ts-check /** * @param {HTMLElement} element * @returns {Generator} */ export default function* allChildrenOf(element) { yield element; for (const child of element.children ?? []) { yield* allChildrenOf(/** @type {HTMLElement} */ (child)); } }