Typescript - 使用它的字符串名称访问类的属性

时间:2017-08-29 12:35:26

标签: typescript ionic2

我正在上课:

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

export class FormMapper {
    public static SOAP_NOTE = SoapNotePage;
}

访问此属性很容易,请参阅以下示例:

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

但我想要的是通过它的字符串名称来访问“SOAP_NOTE”属性,动态类型,例如:

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

我问这个的原因是,函数“open(item)”的“item”参数可能包含FormMapper类的属性名。

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:4)

你可以这样做:

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

这样,您可以将item值限制为FormMapper类的键,编译器不会抱怨。