Здесь нет необходимости использовать typeof
, просто сравните переменные напрямую, чтобы TypeScript знал, что вы уже исключили эти возможные типы, что гарантирует, что stringValue
не будет null
или undefined
:
if(stringValue === '' || stringValue === null || stringValue === undefined)
Или, как упоминалось в @DBS, использовать ложные значения и упростить ваше утверждение до
if (!stringValue)
Если вы хотите, чтобы строки, содержащие только пробельные символы, возвращались как нулевые, вы можете изменить свой оператор возврата на return stringValue.trim() || null
, чтобы проверить, становится ли усеченным значение ''
Как и в @DBS, typeof
возвращает тип в виде строки. Также typeof
для null
объекта вернет 'object'
, а не 'null'
, что делает это еще менее применимым для этого сценария. В общем, я никогда не нуждался в использовании typeof
, за исключением некоторой динамической проверки c ввода