microsoft / microsoft/TypeScript
tagged/named rest parameter participating in circular reference causes error
Chưa có ai nhận issue này.
- 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
named tuple element rest recursive circularly references union unions
🕗 Version & Regression Information
- This is the behavior in every version I tried, and I reviewed the FAQ for entries about everything and didn't find anything relevant
⏯ Playground Link
💻 Code
export type GoodDocNode =
| string
| ["i", ...GoodDocNode[]]
| ["li", index: number, ...GoodDocNode[]];
export type BadDocNode1 =
| string
| ["i", ...tagged: BadDocNode1[]]
// ^^^^^^^^
| ["li", index: number, ...BadDocNode1[]];
export type BadDocNode2 =
| string
| ["i", ...BadDocNode2[]]
| ["li", index: number, ...tagged: BadDocNode2[]];
// ^^^^^^^^
🙁 Actual behavior
Error:
Type alias 'BadDocNode1' circularly references itself.
Type alias 'BadDocNode2' circularly references itself.
🙂 Expected behavior
No errors, because the only differences between the two is the name on the rest parameter in the tuple, nothing structurally is different.
Additional information about the issue
No response
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Sử dụng TypeScript Playground được liên kết và bản tái hiện với BadDocNode1/BadDocNode2 làm điểm bắt đầu; điều tra việc kiểm tra bí danh kiểu tuần hoàn cho các tham số rest được đặt tên của tuple. Được xem là hoàn tất khi bản tái hiện không tạo ra lỗi tham chiếu tuần hoàn, trong khi ví dụ GoodDocNode tương đương về cấu trúc vẫn hợp lệ.
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ó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Ít trao đổi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức phù hợp với người mới
- 48/100