https://javascript.plainenglish.io/what-do-you-need-to-know-about-typescript-new-feature-using-39cd8bf059a0