Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 获取typescript箭头函数以使用反射(角度项目)_Angular_Typescript - Fatal编程技术网

Angular 获取typescript箭头函数以使用反射(角度项目)

Angular 获取typescript箭头函数以使用反射(角度项目),angular,typescript,Angular,Typescript,我有这个方法调用: form.myMethod(x => x.fullName); 我想在myMethod中提取fullName字符串 export class LobFromBuilder<T>{ public myMethod(key:(a: T) => void) { // var keyName = key.toString().split('.').slice(-1).pop();//this is the BAD way

我有这个方法调用:

form.myMethod(x => x.fullName);
我想在
myMethod
中提取
fullName
字符串

export class LobFromBuilder<T>{
    public myMethod(key:(a: T) => void) {
       // 
       var keyName = key.toString().split('.').slice(-1).pop();//this is the BAD way
       }
}

var form = new LobFromBuilder<CustomerEntity>();    
form.myMethod(x => x.fullName);
导出类LobFromBuilder{
公共myMethod(键:(a:T)=>void){
// 
var keyName=key.toString().split('.').slice(-1.pop();//这是一种糟糕的方法
}
}
var form=new LobFromBuilder();
form.myMethod(x=>x.fullName);
我需要的东西,将在角度生产模式的工作


谢谢

也许吧?但仍然很危险。@jcalz nice,为什么这么危险?感谢危险在于
myMethod()
接受奇怪的回调,而编译器没有抱怨,奇怪的事情在运行时发生,直到抛出异常。您只希望它接受形式为
x=>x[k]
的函数。一旦您考虑使该类型安全,它就会促使您只允许
myMethod()
获取使用类似
accessor(k:k){return(x:T)=>x[k]}
的方法构建的“已知”访问器。那么
form.myMethod(form.accessor(“全名”)
就安全了。但是如果存在
accessor()
myMethod()
是无用的。如果没有一个强大的用例和一个完整的应用程序,我对此表示怀疑。