2019 Solution:
I had the same need and found an easier way to do that in another thread. In summary, what Patrick Roberts says in that link (updated with this question values) is:
Don’t over-complicate it.
function isOfTypeTabs (keyInput: string): keyInput is TabTypes {
return ['info', 'features', 'special', 'stars'].includes(keyInput);
}
See What does the `is` keyword do in typescript? for more information on why we don’t just use a
boolean
return type.
Credits and full source here: https://stackoverflow.com/a/57065680/6080254