microsoft / microsoft/TypeScript
bug(lib): Explicitly stating wrong return type of `Promise.then` without arguments results in no error
Chưa có ai nhận issue này.
- 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ả
🔎 Search Terms
- silenced Promise resolution type mismatch
- Promise generic explicit no error
- no error when Promise type is specified explicitly
- generic inside optional argument
🕗 Version & Regression Information
TS v3.3.3 correctly detects the error, which is the earliest Playground version. All other Playground versions silence the error.
⏯ Playground Link
💻 Code
const test: Promise<string> = Promise.resolve(1).then();
🙁 Actual behavior
No TypeScript errors.
🙂 Expected behavior
I expected a similar error to what TS v3.3.3 yields:
Type
Promise<number>is not assignable to typePromise<string>. Typenumberis not assignable to typestring.
Additional information about the issue
No response
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 ví dụ đã được báo cáo trong TypeScript Playground được liên kết, so sánh hành vi hiện tại với kết quả của TypeScript 3.3.3 được mô tả trong issue. Theo dõi đường đi kiểm tra kiểu của Promise.then được gọi mà không có đối số; được coi là hoàn tất khi phép gán tường minh cho Promise báo cáo sự không khớp với Promise.
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