Turns out you can define types conditionally based on the a type check against a different type. Let’s try it out on a fetch function that optionally takes a callback and can return either a void or a promise based on that callback.
Utility Types page: https://www.typescriptlang.org/docs/handbook/utility-types.html#parameterstype
Code: https://github.com/jherr/no-bs-ts/tree/master/episode-19
#typescript