Bug报告
🔎 搜索词
export class Foo {
constructor() {
this.bar = false;
this.bar = true;
}
get bar() {
return true
}
set bar(value) {
// Do something with value
}
}
/** @type {Foo[]} */
const items = [];
for (const item of items) {
item.bar = true;
}
- 版本与回归信息
this.bar
F2
F12
(在练习场上为 cmdF12
)item.bar
(在第20行)
🙁 实际行为
当点击第3行的 this.bar
时,只有第3行和第4行的示例被高亮显示。按下 F2
时,只有这两个示例被重命名,按下 F12
(在练习场上为 cmd F12
)时,只有这两个示例出现在引用列表中。
🙂 预期行为
所有引用,包括第20行的 getter、setter 和 item.bar
,都应该被引用。在使用TypeScript时,这可以正常工作。请参阅此练习场示例,了解此代码的TypeScript等效项。
Screen.Recording.2022-07-07.at.14.13.24.mp4.mp4
7条答案
按热度按时间f1tvaqid1#
你好,
这似乎不是一个bug。我在最新版本的Typescript(4.7.4)的playground上无法重现它:
Screen.Recording.2022-07-08.at.09.23.29.mov
2cmtqfgy2#
你需要使用
Lang: JavaScript
。dfty9e193#
哦,现在我明白了。那么在使用Typescript语言服务器处理Javascript文件时,这是一个问题吗?
wpcxdonn4#
是的,如果你在你的
tsconfig.json
/jsconfig.json
中使用checkJs: true
,你几乎可以像使用 TypeScript 一样使用 JavaScript 文件。唯一的区别是你必须使用 JSDoc 语法来分配类型,而不能使用const x : number = 1
。尽管我认为为了在语言服务器中重现这个功能,不需要使用该标志。of1yzvn45#
我已经测试过了,你不需要这个标志。
只要有一个 .js 文件就足以复现错误。
jum4pzuy6#
@RyanCavanaugh
我想帮忙解决这个bug。你能把它分配给我吗?
gzjq41n47#
很高兴听到!我无法分配这个(您需要在仓库上具有我们不向非微软员工发放的权限级别)。请参阅https://github.com/microsoft/TypeScript/blob/main/CONTRIBUTING.md#issue-claiming