HttpStatusCode >= 400 significa um erro, se a sua request retornou isso, ela deve ser considerada um erro.
Se vc tem um endpoint que, obrigatoriamente, deve retornar uma entidade e ela não existe, você retorna 404 Not Found e a o consumer da sua API deve tratar esse erro.
Se a sua resquest, opcionalmente, pode ou não retornar uma entidade:
- Algo foi retornado: 200 Ok
- Nada foi retornado: 204 No Content
Nos dois casos acima, você pode fazer o tipo da sua resposta como:
{
data: TEntidade | null;
}
ou
{} satisfies TEntidade | null
Caso o seu apiClient (ex: TSRest) é totalmente type-safe:
body: {
200: {} // entidade,
204: null
} e a partir daqui vc usa type-narrowing.