2016-11-17 102 views
1

对象在JS我做的一个方法:Memoizing在打字稿

var o = { 
    foo: memoize(foo) 
}; 

我怎么在打字稿memoize的一个实例方法相类似?

class C { 
    // How do I memoize this function? 
    public foo() :any { 
    } 
} 

我想用一个class以配合建立在现有的打字稿代码库的成语。

+0

有什么改变它变成一个类的意图是什么?仅仅因为你使用TS并不意味着你必须将所有东西都转换成类。编写你会写的JS,并在你想要的地方添加类型注释。 –

+0

你可以从打字稿类构造函数返回任意对象吗?我问,因为这不是我的代码库,我需要利用Angular注入器。每次我尝试在TS中做一些事情时,我都遇到了意想不到的障碍。 – Ben

+0

TS与此有什么关系?类是ES6功能。 –

回答

1

这里有两种方法可以做到这一点:

// With Typescript syntax 
class C { 
    foo = memoize(() => { 
    }); 
} 

// Using ES6-style initialization instead of field initializers 
class C { 
    foo:() => any; 
    constructor() { 
     this.foo = memoize(() => { 
     }); 
    } 
}