【发布时间】:2021-12-29 15:43:58
【问题描述】:
我在 JavaScript 中有这个功能:
function test()
{
this.list = {};
return (id) =>
{
if (!(id in this.list))
this.list[id] = {default: 123};
return this.list[id]
}
}
const blah = new test();
blah("ok").mykey = "ok";
console.log(blah("ok").mykey);
console.log(blah("ok"));
我正在尝试将其转换为 TypeScript 格式。我知道我必须使用class,但是如何从类构造函数返回一个函数?
我不想拥有一个额外的属性myfunc,作为函数new test().myfunc("ok"):
interface simpleObject
{
[key:string]: string|number|object;
}
class Test
{
private list:simpleObject;
public myfunc(id:string)
{
if (!(id in this.list))
this.list[id] = {default: 123};
return this.list[id] as simpleObject;
}
constructor()
{
this.list = {};
}
}
const blah = new Test();
blah.myfunc("test").mykey = "ok";
console.log(blah.myfunc("test").mykey);
console.log(blah.myfunc("test"))
【问题讨论】:
标签: typescript