microsoft / microsoft/TypeScript

Warn/error when testing a non-nullable type for null

Đang mở
#10,477 11 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Awaiting More Feedback Suggestion
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: 2.0.0

TL;DR:

If a project is configured for strict null checks, checking a variable which is typed as non-null is nonsense and could indicate a type mismatch.

Code:

Here's a motivating example I experienced:

async function someFunc1(): Promise<string | null> {
  // do some stuff and return the appropriately typed promise
}

async function someFunc2(): Promise<boolean> {
  // Negating a non-null Promise is crazy talk, but here I go!
  return !!someFunc1()
}

Of course what I really meant was:

async function someFunc2(): Promise<boolean> {
  return !!(await someFunc1())
}

Expected behavior:

TypeScript warns that I'm effectively testing my non-null Promise for null, and points out that that's nonsense.

Actual behavior:

TypeScript happily accepted the code, which led to a bug.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Issue không nêu tên tệp, kiểm thử hay điểm vào nào. Hãy bắt đầu bằng cách xem lại hành vi strict-null-checking được mô tả trong các ví dụ và theo dõi cách TypeScript xử lý các phép kiểm tra null trên các biểu thức non-nullable; hoàn thành khi phép kiểm tra không chính xác tạo ra một chẩn đoán mà không từ chối các phép kiểm tra nullable hợp lệ.

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
Tính năng
Độ 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

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.