![](/img/trans.png)
[英]Typescript. How to specify a type of a subset of object literal properties?
[英]Functions within object literal notation in TypeScript. Why `this` context is of type `any`?
也许已经有人问过这个问题,但我找不到。 而且看起来太幼稚了。 打字稿与对象的文字符号来不错,但定义内,比它不能正确处理方法时, this
是里面的功能方面,似乎this
收到any
类型的,所以不存在自动完成。
var foo = {
log(str) {
console.log(str);
},
print(str) {
this. /* No autocompletion */
}
};
foo. /* Normal autocompletion */
自然,我希望自动补全可以在方法中正常工作,就像使用foo
变量时一样。 我可以先声明一个类,然后实例化该对象,但是为什么不声明中间class
或interface
就无法工作,在这种简单情况下,它看起来像样板吗?
根据有关功能的官方TypeScript文档 :
[...]仍然是
any
。 这是因为this
来自对象文字内部的函数表达式。
GitHub上的TypeScript Wiki也对this
关键字及其上下文有很好的解释。
供将来参考:自TS@2.3起,此行为稍微复杂一些:
如果该方法具有显式声明的此参数,则此参数具有该参数的类型。
否则,如果该方法由带有this参数的签名在上下文中键入,则该方法具有该参数的类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.