Он только проверяет, имеет ли значение тип 'число' или если вы используете Enum, он проверяет, существует ли свойство.
let foo: Gender = 'female' or let foo: Gender = Gender.Orange
выдаст ошибку, например.
То, что вы должны (всегда) делать, это использовать перечисление:
let foo: Gender = Gender.Female;
Таким образом, вы можете не использовать никакие свойства, которых нет в перечислении.
https://www.typescriptlang.org/docs/handbook/enums.html также приятно читать.