Design Meeting Notes, 2026-09-15
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 20/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- typescript
- Lĩnh vực
- compilers
Hướng nghiên cứu
Bắt đầu bằng cách đọc các issue được liên kết 64192, 62180 và 62181, sau đó xem xét các PR 64172 và 64248 để đánh giá những cách tiếp cận hiện có. Các ghi chú thảo luận một số thiết kế chưa được giải quyết cho suy luận kiểu vòng, overload, constraint và việc rò rỉ tham số kiểu, nhưng không xác định tệp, test hoặc tiêu chí hoàn thành.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Better Type Inference Self-Referential Values
- https://github.com/microsoft/TypeScript/issues/64192
- https://github.com/microsoft/TypeScript/issues/62180
- https://github.com/microsoft/TypeScript/issues/62181
- https://github.com/microsoft/TypeScript/pull/64172
- https://github.com/microsoft/TypeScript/pull/64248
const Category = z.object({
get subcategories() {
// ~~~~~~~~~~~~~
// Subcategory implicitly has type 'any' because of circular
// resolution.
return z.array(Category);
}
});
- Zod and similar libraries are motivation here.
- While processing the object literal, we normally defer return types for
getaccessors. - But when validating the constraint, we start pulling on those very types.
- One idea: when we try to resolve a call that is already undergoing resolution, we say "don't check constraints".
- Why don't we disable constraint checking for all calls and do it in another pass?
- We're not always interested in just generating an error, we're often trying to grab the constraint for other information (e.g. if there's no candidates, we have to fix to the constraint).
- How does this affect overloads? Because this would affect how we choose overloads, right?
- Should not play in?
- Could we just return the original uninstantiated type parameter from the call when you detect this circularity?
- How would that work? Isn't that a type parameter leak?
- Yes, but the idea is there's an "outer" call and an "inner" call. The inner call would leak a type parameter (e.g.
T) and the outer call would instantiate it after inference. - Scary, but maybe!
- Outstanding PRs are likely not quite what we're looking for, but may have a PR prototyping these ideas soon.
- Ngôn ngữ chính
- Go
- Star
- 111k
- Fork
- 14.4k
- Merge trung bình
- 1 ngày 19 giờ
- Pull request đã merge (30 ngày)
- 117
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.
Issue khác của microsoft/TypeScript
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
microsoft/TypeScript#64322 · 2 bình luận · 1 reaction · 2 người được giao ·
-
Possible Improvement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
microsoft/TypeScript#64278 · 1 bình luận · 1 reaction ·
-
Docs
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
microsoft/TypeScript#64118 · 1 bình luận ·
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
microsoft/TypeScript#64094 ·
-
Docs
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
microsoft/TypeScript#63959 · 5 bình luận ·
Tất cả issue của microsoft/TypeScript
Issue tương tự
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 92/100
milvus-io/birdwatcher#545 ·
-
kind/bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
kubernetes-sigs/prow#953 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
caddyserver/caddy#8046 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
jaegertracing/jaeger#9588 ·