microsoft / microsoft/TypeScript

`{@link Class.name}` resolves wrongly to `Function.name`

Đang mở
#61,433 4 bình luận 1 reaction 1 người được giao Được @sandersn nhận Xem trên GitHub
Needs Investigation
Ngôn ngữ chính
Go
Star
111k
Fork
14.3k
Merge trung bình
2 ngày 4 giờ
Pull request đã merge (30 ngày)
132

Mô tả

### 🔎 Search Terms

JSDoc, TSDoc, Link, Resolve, Name

### 🕗 Version & Regression Information

- This is the behavior in every version I tried, and I reviewed the FAQ for entries

### ⏯ Playground Link

https://www.typescriptlang.org/play/?ts=5.8.0-dev.20250215#code/MYGwhgzhAEAqCmEAu0DeBYAUNH0D0AVAVrjgdABLwggD2JpBeDOAdmALbwBcyATgEtWAc2gBeaACIEySVgC+WLIWLZyqAAIghAaziIkAOnZdFa5pgBmAV1bAkA2q2hgAFEm4ykASjQtofPBI1nzORibwANwKQA

### 💻 Code

```ts
class Test {
/**
* Hello
*/
name:string = "Test"
}

/**
* {@link Test.name}
*/
function a(t:Test) {
return t.name;
}
```

### 🙁 Actual behavior

The `Test.name` reference in the JSDoc/TSDoc resolves to the symbol `Function.name`. This is not correct because the `Test` class has an own property declaration for `name`.

In my real world usecase am generating markdowns from my typescript code via TypeScript compiler API and I get the wrong symbol using `typeChecker.getSymbolAtLocation(tsDocLinkNode.name)` leading to wrong documentation links.

![Image](https://github.com/user-attachments/assets/cc671d23-07b4-4aea-8529-15e1608a7a81)

### 🙂 Expected behavior

The correct documentation of my `name` property should be shown.

The typeChecker should resolve this expression to the correct symbol to allow tooling to resolve these cross references and link to the respective documentation page.

### Additional information about the issue

_No response_

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.