Weboldal keresés

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.

Kapcsolódó cikkek