¿Cómo manejar objetos que pueden ser nulos en Typescript?
Quiero una función que devuelva un objeto o nulo.
Aquí está cómo lo manejo hoy:
export interface MyObject {
id: string
}
function test(id) : MyObject | null {
if (!id) {
return null;
}
return {
id: id
}
}
¿Es esto la mejor práctica?
Preferiría hacer que la interfaz sea anulable en lugar de retornar MyObject | null.
Pero no sé si eso es posible.
Respuesta #1
¿Es esto la mejor práctica?
Está bien. Todos hacen eso (o con undefined).
Preferiría hacer que la interfaz sea anulable en lugar de retornar
MyObject | null.
Puedes hacer:
export type NullableObject = null | {
id: string
}
Es poco común pero también está bien.
Respuesta #2
En Typescript, null y undefined forman parte de los dominios de todos los tipos, a menos que se habiliten las comprobaciones estrictas de null. En mi opinión, declarar explícitamente los nulls es una práctica mucho mejor que tenerlos implícitamente por todas partes, pero en el mundo real a menudo no es realista habilitar el modo estricto al interactuar con código de biblioteca que no está diseñado para ello.
