我发现下面的示例中的Function.name documentation打字稿:如何让函数名作为字符串,不TS2339错误
const o = {
foo(){}
};
o.foo.name; // "foo";
在打字稿的问题(在此处键入):
const o: { foo:() => void } = {
foo:() => {
}
};
o.foo.name;
是当我想要检索 o.foo.name
,在那里我将得到一个错误
TS2339(属性“名称”不存在)
我该如何处理它,保持对象输入? 我想避免必须投入属性“foo”,如(<any>o.foo).name
PS:用例是为了进一步重构而保留键入。例如,下面是安全的进行重构:
spyOn(o, (<any>o.foo).name)
虽然这个人是不是
spyOn(o, "foo")
PS 2:看来检索功能名称可能是有问题的TS:Get name of function in typescript
你的代码在最新的打字稿精细,是你张贴完整的代码?也许还有一些其他问题?或者您是否使用以前版本的TS –
@ TitianCernicova-Dragomir typescript 2.3.3,但在tsconfig.json中使用“target”:“es5”,这可能是属性名称被视为缺失的原因。 –