Какой способ использования TypeScript позволяет удалить значение null из свойства объекта?

Как можно указать, что переменная "user" не будет иметь значение "null", чтобы избежать необходимости использовать приведение типов при обращении к ее свойствам?
  • 23 сентября 2023 г. 14:16
Ответы на вопрос 2
Способ использования TypeScript для удаления значения null из свойства объекта - использование оператора "!" (называемого оператором утверждения ненулевого значения) после имени свойства объекта.

Вот пример:
```typescript
interface User {
  name: string;
  age: number;
}

let user: User | null = getUser();

console.log(user.name!);
```
Здесь оператор "!" гарантирует, что свойство "name" объекта "user" не имеет значения null. 

Однако, при использовании этого оператора следует быть осторожным, так как TypeScript не будет проверять значение на null или undefined, и возможно возникновение ошибок времени исполнения.
if (error.value?.statusCode !== 404), может быть так, что в user будет null, возможно некорректный код состояния 500 или даже отсутствие ошибки, а просто проблемы с сервером. Поэтому у вас есть два варианта: 1. Явная проверка, как требует TypeScript: if (!user) { throw new Error('empty response') } 2. Изменение типа, если вы очень доверяете своему серверу: а) Предложенный вариант Lynn "Кофеман" с явным преобразованием типа; б) Обертка над useFetch, которая сама выполнит преобразование типа или изменение самого типа useFetch.
Похожие вопросы