microsoft / microsoft/TypeScript
Infer type isn't contextual typed by type bounds
Đang mở
Chưa có ai nhận issue này.
Bug
Domain: Conditional Types
- 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ả
Bug Report
Infer type isn't contextual typed by type bounds
type Foo<T> = T extends string ? Record<T, number> : never;
type Foo2<T extends {a:string}>= T extends {a: infer A} ? Record<A, number>:never; //error here, A should extends string already, but seems not
🔎 Search Terms
generic infer bounds
🕗 Version & Regression Information
4.2.3
⏯ Playground Link
💻 Code
type Foo<T> = T extends string ? Record<T, number> : never;
type Foo2<T extends {a:string}>= T extends {a: infer A} ? Record<A, number>:never; //error here, A should extends string already, but seems not
🙁 Actual behavior
throw error
🙂 Expected behavior
not throw error
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
Bắt đầu với TypeScript Playground được liên kết và ví dụ Foo2 rút gọn để tái hiện lỗi. Issue không nêu tệp nguồn hay bài kiểm thử nào; hãy theo dõi cách trình biên dịch xử lý các bound kiểu được suy luận, sau đó xác minh rằng ví dụ chấp nhận Record<A, number> như mong đợi và bổ sung coverage hồi quy.
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
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100