2017-08-29 4 views
1

mit Ich habe diese Klasse:Typoskript - Acess Eigenschaft der Klasse ist es string name

import { SoapNotePage } from "../pages/forms/soap-note/soap-note"; 

export class FormMapper { 
    public static SOAP_NOTE = SoapNotePage; 
} 

Es ist leicht, auf diese Eigenschaft zuzugreifen, siehe folgendes Beispiel:

open(item){ 
    if(item.id == 1){ 
     this.navCtrl.push(FormMapper.SOAP_NOTE, { patientId: 509070, formId: 75598 }); 
    } 
} 

Aber was ich wollen, ist die „SOAP_NOTE“ Eigenschaft von seinen string name zuzugreifen, Art dynamisch, zum Beispiel wie folgt aus:

this.navCtrl.push(FormMapper['SOAP_NOTE'], { patientId: 509070, formId: 75598 }); 

die rea Sohn Ich frage das, ist, dass der "Artikel" Parameter der Funktion "öffnen (Element)" kann den Namen der Eigenschaft der FormMapper-Klasse enthalten.

Gibt es eine Möglichkeit, dies zu tun?

+2

Nicht sicher, was das Problem ist, können Sie statische Mitglieder mit einem Indexer zugreifen. 'FormMapper ['SOAP_NOTE']' sollte in Typescript gültig sein. –

Antwort

4

Sie können dies tun:

function open(item: keyof typeof FormMapper) { 
    console.log(FormMapper[item]); 
} 

diese Weise können Sie beschränken item Werte Tasten der FormMapper Klasse zu sein, und der Compiler nicht beklagen.

Verwandte Themen