Hur hanterar man objekt som kan vara null i Typescript?
Jag vill ha en funktion som returnerar antingen ett objekt eller null.
Här är hur jag hanterar det idag:
export interface MyObject {
id: string
}
function test(id) : MyObject | null {
if (!id) {
return null;
}
return {
id: id
}
}
Är detta bästa praxis?
Jag skulle föredra att göra gränssnittet nullable snarare än att returnera MyObject | null.
Men jag vet inte om det är möjligt.
Svar #1
Är detta bästa praxis?
Det är helt okej. Alla gör det (eller med undefined).
Jag skulle föredra att göra gränssnittet nullable snarare än att returnera
MyObject | null.
Du kan göra:
export type NullableObject = null | {
id: string
}
Det är ovanligt men också okej.
Svar #2
I Typescript är null och undefined en del av domänerna för alla typer, om inte strikta nullkontroller är aktiverade. Enligt min åsikt är det en mycket bättre praxis att uttryckligen deklarera null än att ha dem överallt implicit, men i verkligheten är det ofta inte realistiskt att aktivera strikt läge när man arbetar med bibliotekskod som inte är designad för det.
