En tsconfig.json puede definir bibliotecas adicionales, que le brindan tipos de "bibliotecas" HTML o DOM (? No conozco la terminología correcta).
No entiendo por qué dom y dom.iterable están separados. ¿Se definieron en diferentes módulos/versiones de ecma? ¿Puedo usarlos de forma segura?
Sospecho que es porque la iteración (iterables e iteradores) no se agregaron a JavaScript hasta ES2015, mucho después de que TypeScript estuviera bien establecido. Cuando se lanzó ES2015, los motores de JavaScript en muchos navegadores no admitían la iteración (todavía)¹ y, por supuesto, en ese momento Internet Explorer todavía era una... cosa... que nunca iba a tener nuevas funciones. Entonces, algunos proyectos tenían como objetivo entornos que no tenían iteración, por lo que las bibliotecas están separadas.
Incluso aquí en 2022, IE sobrevive en instalaciones corporativas y gubernamentales (aunque afortunadamente eso finalmente está cambiando), y algunas personas tienen que orientar sus aplicaciones y páginas a esos entornos, por lo que no querrían usar dom.iterable .
¹ ES2015 fue la última versión de la especificación que incluyó características significativas que aún no tenían implementaciones en el campo. En estos días, el proceso que sigue TC39 generalmente no incluye características en la especificación hasta que haya (idealmente) un par de implementaciones del envío de características en el campo. En cambio, la propuesta permanece en la Etapa 3 hasta que eso suceda, antes de pasar a la Etapa 4 por consenso en una reunión TC39, se agrega al borrador del editor y, por lo tanto, se encuentra en la siguiente especificación de instantáneas en junio siguiente.