用于以下功能(另请参阅http://ramdajs.com/docs/#where)
var spec2 = {x: function(val, obj) { return val + obj.y > 10; }};
R.where(spec2, {x: 2, y: 7}); //=> false
R.where(spec2, {x: 3, y: 8}); //=> true
我想为object
T
具有谓词值的情况创建输入法。
我以为我会做这样的事情:
where<T>(spec: {item: (val: any, testObj: T) => boolean}, testObj: T): boolean;
但我不知道该怎么做钥匙。
答案 0 :(得分:2)
没有办法在TypeScript类型系统中表示这一点。
答案 1 :(得分:0)
这似乎更接近于部分类型安全的解决方案:
interface Pred2<T> {
(x: any, y: T): boolean
}
interface ObjPred2<T> {
[index: string]: Pred2<T>;
}
where<T>(spec: ObjPred2<T>, testObj: T): boolean;