我正在上这堂课:
import { SoapNotePage } from "../pages/forms/soap-note/soap-note";
export class FormMapper {
public static SOAP_NOTE = SoapNotePage;
}
Run Code Online (Sandbox Code Playgroud)
访问该属性很容易,请参见以下示例:
open(item){
if(item.id == 1){
this.navCtrl.push(FormMapper.SOAP_NOTE, { patientId: 509070, formId: 75598 });
}
}
Run Code Online (Sandbox Code Playgroud)
但我想要的是通过字符串名称动态地访问“SOAP_NOTE”属性,例如如下所示:
this.navCtrl.push(FormMapper['SOAP_NOTE'], { patientId: 509070, formId: 75598 });
Run Code Online (Sandbox Code Playgroud)
我问这个问题的原因是函数“open(item)”的“item”参数可能包含 FormMapper 类的属性名称。
有什么办法可以做到这一点吗?
你可以这样做:
function open(item: keyof typeof FormMapper) {
console.log(FormMapper[item]);
}
Run Code Online (Sandbox Code Playgroud)
这样你就可以将item值限制为FormMapper类的键,编译器就不会抱怨。