microsoft / microsoft/TypeScript
Union type in element access can prevent deprecated warning from triggering
Chưa có ai nhận issue này.
- 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
Mô tả
TypeScript Version: 4.1.0-dev.20201027
Search Terms: Deprecated tag, union, element access
Code
const foo = {
faff() { },
/** @deprecated */
fluff() { }
}
declare const k: "faff" | "fluff";
//Expected: deprecation warning
//Actual: no warning
foo?.[k]?.();
const bar = {
/** @deprecated */
faff() { },
fluff() { }
}
//Expected: deprecation warning
//Actual: deprecation warning
bar?.[k]?.();
Expected behavior:
foo?.[k]?.(); should show deprecated warning because if k is "fluff", then we'll be calling a deprecated method.
Actual behavior:
foo?.[k]?.(); has no deprecated warning.
Playground Link: Playground
Related Issues: Couldn't find any
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 bản tái hiện được liên kết trong TypeScript Playground và so sánh các trường hợp foo?.[k]?.() và bar?.[k]?.() bằng phiên bản TypeScript được báo cáo. Theo dõi cách các cảnh báo không được khuyến nghị được tạo ra đối với thao tác truy cập phần tử tùy chọn bằng các khóa union; công việc được xem là hoàn thành khi trường hợp foo báo cáo một cảnh báo không được khuyến nghị mà không gây hồi quy cho trường hợp bar hiện 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ó
- 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
- 35/100