Actually, TypeScript's `Promise.all` can handle different types too.
const [a, b] = await Promise.all([fetchA(), fetchB()]); // => a: A, b: B const [a, b] = await Promise.all([fetchA(), fetchB()]); // => a: A, b: BThat TypeScript supports this is yet more complexity introduced to cover usages of an API not designed around types.