microsoft / microsoft/TypeScript
Mapped types shouldn't transform unknown type
Đang mở
Chưa có ai nhận issue này.
Awaiting More Feedback
Suggestion
- 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ả
@ahejlsberg Probably #29740 made this regression.
TypeScript Version: 3.4.0-dev.20190207
Search Terms:
Code
type DeepReadonly<T> =
T extends void ? T :
{ readonly [P in keyof T]: DeepReadonly<T[P]>; };
type m = { a: unknown }; // Also unknown[].
type i = DeepReadonly<m>;
Expected behavior:
i is { readonly a: unknown; }.
Actual behavior:
i is { readonly a: {}; }.
Playground Link:
Related Issues:
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
Tái hiện đoạn mã DeepReadonly được cung cấp bằng TypeScript 3.4.0-dev.20190207 và so sánh kết quả mapped type đối với unknown với kiểu dữ liệu mong đợi. Theo dõi cách xử lý mapped type và kiểu unknown; hoàn tất khi unknown vẫn là unknown, bao gồm cả trường hợp unknown[] đã nêu, thay vì trở thành {}.
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
- Đặc tả rõ ràng
- Mức phù hợp với người mới
- 42/100