microsoft / microsoft/TypeScript
typescript version 7 complains about unused generic type even though version 6 does not
- 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
"TS6196", "is declared but never used", "unused generic", "noUnusedParameters"
### 🕗 Version & Regression Information
- This changed between versions 6.0.3 and 7.0.2
### ⏯ Playground Link
https://www.typescriptlang.org/play/?#code/C4TwDgpgBAShBmAeAKgPigXigbwFAEgA3AQwBsBXCALimQBpcBfXXecgOwGNgBLAe3ZROAJwjFgEOEnoBVKBAAeE9gBMAzlEJ8eK1AAoSFapu0qAlDSkpUAblYdu-QSLESraA2Uo1kF2Ams7Ni5eASFRcUkAj0NvWj93dDx8UWByYUFkoi8IBnxGO2ZcTgE1YChReABGTHDXKPg9MzsS9jU+UggAOlI+AHM9Sqrm4tLyyoAmWpdIq3ZyAFsAIwhhOhMdfRHW9s6e-sGECe2xioQAZmmItwD55dX9KvOTto7u3oHK57sgA
### 💻 Code
```ts
type Ref = {
value: T,
}
function createRef(value: void): Ref;
function createRef(value: T): Ref;
function createRef(value: T): Ref {
return {
value,
};
}
const ref1 = createRef();
console.log(ref1);
const ref2 = createRef();
console.log(ref2);
const ref3 = createRef(13);
console.log(ref3);
```
### 🙁 Actual behavior
The typescript compiler version 7 fails with following error message:
```
code.ts:5:22 - error TS6196: 'U' is declared but never used.
5 function createRef(value: void): Ref;
~~~~~~~~~~~~~~
Found 1 error in code.ts:5
```
The typescript compiler version 6 succeeds without any errors.
### 🙂 Expected behavior
The typescript compiler version 7 should behave exactly like version 6 i.e. not fail.
### Additional information about the issue
This error only occurs with `noUnusedParameters` set to `true`.
Hướng dẫn đóng góp
Hướng nghiên cứu
Tái hiện lỗi từ Playground được liên kết bằng cách sử dụng noUnusedParameters và các overload createRef được hiển thị, sau đó theo dõi cách trình biên dịch xử lý các tham số kiểu generic không được sử dụng trong các khai báo overload. Thêm một bài kiểm thử hồi quy bao quát hành vi của version-7 và xác minh rằng ví dụ không còn báo cáo TS6196, trong khi các chẩn đoán khác về tham số không được sử dụng vẫn chính xác.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- typescript
- Lĩnh vực
- compilers
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Sôi nổi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức phù hợp với người mới
- 68/100