Tôi có ví dụ sau:Tại sao nguyên cảo không phàn nàn về biến không xác định chắc chắn
class Uncle {
constructor(public name : string) { }
talk() {
return "Hello my name is " + name;
}
}
let p : Uncle = new Uncle("Jo");
console.log(p.talk());
Đối với tên biến nhất định, nguyên cảo (ngay bây giờ Version 2.1.4) sẽ không phàn nàn rằng họ không được định nghĩa trong chương trình của bạn (Trong phần thảo luận về phương thức, tên đang được sử dụng mà không có điều này). name
là một trong số đó.
Nếu tôi đổi tên biến, chẳng hạn, firstName
, trình biên dịch phàn nàn chính đáng ...
lỗi TS2663: Không thể tìm thấy tên 'firstname'. Ý bạn là thành viên cá thể 'this.firstName'?
Tương tự, ví dụ: cửa sổ, dường như được cho là tồn tại.
Câu hỏi của tôi (s) là:
- Những tên biến được cho là tồn tại và tại sao?
- Hành vi đó có thể được thay đổi không (ví dụ: trong một số trường hợp bạn có thể nêu rõ các biến mà bạn mong muốn có sẵn trên toàn cầu)?
Bạn có biết liệu có cách tắt tính năng này không? – flq
Tắt nội dung nào? Biến 'name' tồn tại, bạn muốn trình biên dịch làm gì? –
không nhất thiết phải ví dụ: khi bạn viết mã cho một ứng dụng node.js, cửa sổ và bạn bè sẽ không tồn tại. Trong trường hợp như vậy nó sẽ được tốt đẹp nếu trình biên dịch sẽ không giả định sự tồn tại của những globals. – flq