Är ett TypeScript-gränssnitt samma sak som en C-struktur?


Såvitt jag förstår kan TypeScript-gränssnitt endast ha egenskaper och inte metoder. Kommer man från C++ gör detta att de ser mer ut som enkla C-strukturer än C++-gränssnitt, som vanligtvis har metoder utan implementation och inga datamedlemmar.

Är det korrekt att betrakta TypeScript-gränssnitt som gamla datatyper? Den enda skillnaden jag ser är att medlemmarna själva kan vara "objekt" som har egna metoder.

Svar #1

Nej, det är inte sant att säga att de inte kan ha metoder.

De kan definiera metoder som ska implementeras av alla klasser som implementerar gränssnittet på ungefär samma sätt som gränssnitt från andra språk, t.ex.:

export interface IStudent {
  Name: string;
  IsEnrolled: boolean;
  Enroll();
}

export class Student implements IStudent {
  Name: string;
  IsEnrolled: boolean;
  Enroll() {
    this.IsEnrolled = true;
  }
}

Relaterade artiklar