microsoft / microsoft/TypeScript
`strictNullChecks` short-circuits the subsequent type checks
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ả
Bug Report
hello, I encounter a strange bug when I use strictNullChecks: true, and here is an example:
interface A {
a: number;
}
const list: A[] = [];
list[0] ??= {}; // throw an error: Property 'a' is missing in type '{}' but required in type 'A'
list[0] = list[0] ?? {}; // the type checking not work !
list[0] = list[0] || {}; // the type checking not work !
🔎 Search Terms
🕗 Version & Regression Information
- This is the behavior in every version I tried
⏯ Playground Link
It seems the type checking works after I close the strictNullChecks options
Playground link with relevant code
💻 Code
interface A {
a: number;
}
const list: A[] = [];
list[0] ??= {}; // throw an error: Property 'a' is missing in type '{}' but required in type 'A'
list[0] = list[0] ?? {}; // the type checking not work !
list[0] = list[0] || {}; // the type checking not work !
🙁 Actual behavior
list[0] = list[0] ?? {}; doens't throw any errors
🙂 Expected behavior
I expect that list[0] = list[0] ?? {}; should throw an 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à tái hiện ví dụ khi đã bật strictNullChecks, so sánh ??= với các phép gán ?? và || tiếp theo. Truy vết đường đi kiểm tra kiểu cho các dạng phép gán này và thêm hoặc cập nhật một bài kiểm thử hồi quy cho thấy việc gán một đối tượng chưa đầy đủ sẽ báo lỗi thuộc tính bị thiếu.
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