从函数体参数中获取值

时间:2015-02-27 12:10:06

标签: javascript typescript

我有带功能的打字稿功能

GetOne<T>(predicate: (e: T) => boolean): T;

var user = GetOne<IUser>(a => a.Id === this.id);

谓词toString()返回&#34;函数(a){return a.Id === _this.id; }&#34;

我如何从&#34; _this.id&#34;中获得价值? ?

我想从函数信息中创建一个breezejs Predicate ...

由于

2 个答案:

答案 0 :(得分:0)

在TypeScript / ES6箭头函数中,这是指类的实例。所以你可以使用yourInstance.id获取id。

答案 1 :(得分:0)

本守则

GetOne<T>(predicate: (e: T) => boolean): T;

var user = GetOne<IUser>(a => a.Id === this.id);

等于

GetOne<T>(predicate: (e: T) => boolean): T;
var self = this;
var user = GetOne<IUser>(function(a){ return a.Id === self.id });

如果您的问题是如何获得这个(例如用户)的任何名称函数(a)...可能会被调用

predicate.call(user);
// or
predicate.apply(user);

然后你必须重写你的代码

GetOne<T>(predicate: (e: T) => boolean): T;

var user = GetOne<IUser>(function(a){ return a.Id === this.id });