microsoft / microsoft/TypeScript

Type JS's `arguments` object based on function parameters

Đang mở
#29,055 9 bình luận 6 reaction 0 người được giao Xem trên GitHub

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

In Discussion 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ả

Search Terms

type "arguments" object parameters

Suggestion

Within a function x, the type of the arguments object should be Parameters<typeof x> & IArguments, with undefined removed from the type of any entries in Parameters<typeof x> if that parameter has a default value.

Use Cases

class A {
   fn(it: number) { return true; }
}

class B extends A {
  fn(it: number) {
    // this shouldn't error, because arguments must be at least length 1.
    // instead we get ERROR: Expected 1 arguments, but got 0 or more.
    return super.fn(...arguments); 
  }
}

Checklist

My suggestion meets these guidelines:

  • [?] This wouldn't be a breaking change in existing TypeScript/JavaScript code
  • This wouldn't change the runtime behavior of existing JavaScript code
  • This could be implemented without emitting different JS based on the types of the expressions
  • This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, etc.)
  • This feature would agree with the rest of TypeScript's Design Goals.

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

Không có tệp nguồn, bài kiểm thử hoặc điểm vào của trình biên dịch nào được nêu. Hãy bắt đầu bằng cách tái hiện ví dụ lớp A/B và kiểm tra cách đối tượng arguments, Parameters<typeof x>, các tham số mặc định và super.fn(...arguments) hiện được kiểm tra; được xem là hoàn tất khi ví dụ không còn báo lỗi số lượng đối số đã nêu mà vẫn giữ nguyên hành vi khi chạy.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
javascript, typescript
Lĩnh vực
compilers
Loại issue
Tính năng
Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
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
30/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.