T | null | undefined;
И есть метод cleanupText, который на js выглядит вот так:
cleanupText(text) {
return text ? normalizeSpaces(text) : text;
}
Он может принимать null | undefined | string.
И, в зависимости от принятого типа, его и должен возратить. Пишу вот так, но ловлю ошибку, которую не пойму как правильно пофиксить:
Коротко: увы, но normalizeSpaces(text) as T Длинно: Нам-то, конечно, очевидно, что если проверка typeof text === 'string' прошла, то из этого локального сужения типа аргумента text автоматически следует, что в этом вызове cleanupText тип, подставленный вместо`T`, включал в себя string, а не был равен null, undefined или их комбинации. Тайпскрипту не очевидно, он у нас ещё смешарик.
О как. Понял, спасибо! Работает)
Обсуждают сегодня