typescript - Tilldela null till interface i angular 4


jag har ett gränssnitt i angular4

interface StatusDetail {
    statusName: string,
    name: string
}

och jag har tilldelat några värden till det som

//angular Komponent

     export class EditComponent implements OnInit{
         statusDetail: StatusDetail;
         ngOnInit() {
           this.statusDetail.statusName = 'text Status';
           this.statusDetail.name= 'text Name';
         }
     }  

jag försöker återställa till standard null så här

         SetNull() { 
           this.statusDetail = null
         }

men det ger ett fel

Typ null kan inte tilldelas typen StatusDetail

hur kan jag göra detta?

Svar #1

Du behöver deklarera statusDetail som StatusDetail | null:

export class EditComponent implements OnInit{
     statusDetail: StatusDetail | null;
     ngOnInit() {
       this.statusDetail.statusName = 'text Status';
       this.statusDetail.name= 'text Name';
     }
 }  

Svar #2

Du kan återställa/initiera ditt gränssnitt som nedan.

this.statusDetail = <StatusDetail>{};

Nu kommer objektet att ha standardvärdet. Du kan också sätta till undefined, varför null förresten? Varför inte

this.statusDetail = undefined ;

Relaterade artiklar