This is strange behavior! The fact that sealExhibit contained an undefined somehow poisoned type of lion to include undefined. Thanks to a pull request from Jack Bates, this has been fixed with improvements in our inference process in TypeScript 3.9. The above no longer errors. If you’ve been stuck on older versions of TypeScript due to issues around Promises, we encourage you to give 3.9 a shot!