microsoft / microsoft/TypeScript
Using declarations like a statement leads to strange bugs.
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
function declaration statement
🕗 Version & Regression Information
v 5.9.3
⏯ Playground Link
💻 Code
if (true) var x = 0;
console.log(x); //ok
for (let i = 0; i < 3; i++) var j = i;
console.log(j) //error in compile: j is used before being assign, no error in runtime
if (true) function f() {}
f()//no error in compile time, but error in runtime: In strict mode code, functions can only be declared at top level or inside a block
🙁 Actual behavior
🙂 Expected behavior
Additional information about the issue
The questions above was raised only in academic purpose. I understand that there are no real use cases to apply code above.
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 ba ví dụ khai báo trong issue, đồng thời so sánh các chẩn đoán của trình biên dịch với hành vi khi chạy. Issue không nêu kết quả mong đợi, vì vậy hãy xác định liệu bản sửa dự kiến là một chẩn đoán, thay đổi đối với mã được phát ra hay ngữ nghĩa JavaScript được ghi lại trước khi xác định khu vực liên quan trong trình biên dịch và các bài kiểm thử.
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
- 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ần làm rõ
- Mức phù hợp với người mới
- 25/100