javascript - Hogyan definiálok egy TypeScript interfészt egy üres tömbhöz?
Ez a felület a válaszaim tömbjét írja le (IActivityAnswer[]).
export interface IActivityAnswer {
createdAt: string;
id: string;
questionId: string;
score: number;
summary: string;
title: string;
commentCount?: number;
}
Néhány felhasználónak nem lesz válasza (tehát üres tömbjük lesz). Hogyan definiálhatok típust az üres tömbhöz? Ezt úgy szeretném elérni, hogy ne használjam a típus any-t.
Válasz #1
A TypeScript 3.0-tól kezdve használhatod az üres tuple típust, amit így írunk: [].
const empty: [] = [];
Azonban még ezzel a funkció nélkül sem értem, miért lenne szükséged arra, hogy a any típust használd, mivel írhatnál valami ilyesmit is
const empty = <never[] & {length: 0}>[];
Az üres tuple típus [] előnyben részesítendő, mivel robusztusabb ellenőrzést és jobb hibaüzeneteket biztosít, ha helytelenül használják.
Válasz #2
Megadhatja a IActivityAnswer[]-t, és a típus a következőképpen lenne meghatározva:
Egy tömb, amely IActivityAnswer objektumokat tartalmaz, vagy egy tömb, amely nem tartalmaz IActivityAnswer objektumokat, azaz egy üres tömb.
