TypeScript getDefinitionAtPosition不区分合并声明中的不同种类

hivapdat  于 2022-10-29  发布在  TypeScript
关注(0)|答案(8)|浏览(153)

**类型脚本版本:**2.7.2
**搜索条件:**getDefinitionAtPosition种类
代码

namespace A { export interface B {} }
class A {}
interface A {}

var x: A; // do getDefinitionAtPosition on the A reference here

预期行为:

在结果中,每个单独的声明都应具有相应的kind

[
    { fileName: 'test.ts', textSpan: { start: 10, length: 1 }, kind: 'module', name: 'A', ... },
    { fileName: 'test.ts', textSpan: { start: 44, length: 1 }, kind: 'class', name: 'A', ... },
    { fileName: 'test.ts', textSpan: { start: 59, length: 1 }, kind: 'interface', name: 'A', ... }
]

实际行为:

所有声明都具有相同的kind

[
    { fileName: 'test.ts', textSpan: { start: 10, length: 1 }, kind: 'class', name: 'A', ... },
    { fileName: 'test.ts', textSpan: { start: 44, length: 1 }, kind: 'class', name: 'A', ... },
    { fileName: 'test.ts', textSpan: { start: 59, length: 1 }, kind: 'class', name: 'A', ... }
]
ygya80vv

ygya80vv2#

大家好,我正在查看这个问题,这是我的第一个问题,我想我已经把它缩小到checker.ts中的getSymbolAtLocation函数。到目前为止,这是正确的思路吗?我不知道如何在VS Code中单步执行代码,所以我不得不根据直觉进行猜测。我已经设置了一个四斜杠测试,它会重新创建这个问题,所以希望我能很快解决这个问题。
x1m0n1x
checker.ts中的第25838行

zhte4eai

zhte4eai3#

我已经把范围缩小到checker.ts中的getSymbolAtLocation函数。到目前为止,这是正确的思路吗?
您不希望更改此定义。相反,当您有一个定义时,您希望获得其含义,使用getMeaningFromLocation并过滤您必须匹配的含义。
请参阅findAllRefernces.ts中hasMatchingMeaning的用法

x9ybnkn6

x9ybnkn64#

我在哪里可以找到findAllRefernces.ts
字面上一直在寻找它的最后半个小时。我是一个绝对的初学者,抱歉,如果这是一个愚蠢的问题

u91tlkcl

u91tlkcl5#

我想了解一下GraceHopperOSD的这一点

kuhbmx9i

kuhbmx9i6#

与kristielim一起为GraceHopperOSD工作

enxuqcxy

enxuqcxy7#

@kristielim@mengdidi嗨!我正在调查这个问题,但是不知道这个问题是否已经解决了。谢谢!

hi3rlvi2

hi3rlvi28#

没什么,尽管接吧!

相关问题