angular - Este posibil să moștenești o interfață din mai multe alte interfețe în TypeScript


Bună comunitate Angular,

Este posibil să includem trei interfețe încorporate într-o altă interfață, cred că codul meu va explica mai bine decât propoziția mea: Încerc să implementez interfața IProject1 & IProject2 & IProject3 pentru a face parte din interfața IAdmin2:

Mulțumesc anticipat

 import {IBusiness} from "./business";
 import {ITechnology} from "./technology";
 export interface IAdmin2 {
     id: number;
     business_id: number;
     technology_ids: number[];
     trigram: string;
     position: string;
     years_experience: number;
     notification: boolean;
     availability: any;
     form_admin2_file: File;
     business: IBusiness;
     technologies: ITechnology[];
     admin2Translations: any;
     translations: any;
    delete: any;
    data: any;
  ** Include interface Iproject1**
  ** Include interface Iproject2**
  ** Include interface Iproject3**
 }


 import {ITechnology} from "./technology";
 import {IProjectFile} from "./project-file";
 export interface IProject1 {
     id: number;
    name: string;
    start_date: any;
    technologies: ITechnology[];
    description: string;
    sector_id: number;
    end_date: any;
    team_size: number;
}

 import {ITechnology} from "./technology";
 import {IProjectFile} from "./project-file";
 export interface IProject2 {
     id: number;
    name: string;
    start_date: any;
    technologies: ITechnology[];
    description: string;
    sector_id: number;
    end_date: any;
    team_size: number;
}

 import {ITechnology} from "./technology";
 import {IProjectFile} from "./project-file";
 export interface IProject3 {
     id: number;
    name: string;
    start_date: any;
    technologies: ITechnology[];
    description: string;
    sector_id: number;
    end_date: any;
    team_size: number;
}

Răspuns #1

În TypeScript poți moșteni o interfață de la una sau mai multe interfețe de bază:

interface IProject1 {
}

interface IProject2 {
}

interface IProject3 {
}

interface IAdmin2 extends IProject1, IProject2, IProject3 {
}

Ca rezultat, implementările lui IAdmin2 vor trebui de asemenea să implementeze IProject1, IProject2 și IProject3. De asemenea, puteți verifica documentația oficială a interfețelor.