Tại sao global có kiểu "typeof globalThis"
Last updated
Was this helpful?
Last updated
Was this helpful?
Trong TypeScript, global
có kiểu typeof globalThis
để đảm bảo tính nhất quán và tương thích giữa các môi trường JavaScript khác nhau, như Node.js và trình duyệt.
globalThis
là gì?globalThis
là một đối tượng toàn cục được giới thiệu trong ECMAScript 2020 (ES11) để cung cấp một cách nhất quán để truy cập vào global object, bất kể môi trường chạy là gì.
Trong trình duyệt: globalThis
tương đương với window
Trong Node.js: globalThis
tương đương với global
Trong Web Workers: globalThis
tương đương với self
2. Tại sao global
có kiểu typeof globalThis
?
Trong TypeScript, global
trong Node.js có kiểu typeof globalThis
để phản ánh chính xác các thuộc tính của global object trong mọi môi trường.
3. Lợi ích của cách tiếp cận này
Nhất quán giữa các môi trường: Thay vì định nghĩa riêng global
cho Node.js và window
cho trình duyệt, TypeScript sử dụng globalThis
, giúp code chạy linh hoạt hơn.
Tương thích tốt hơn với tiêu chuẩn ECMAScript: Giúp code TypeScript tuân theo ES2020 một cách chính xác.
Hỗ trợ IntelliSense tốt hơn: TypeScript có thể hiểu và cung cấp gợi ý cho các thuộc tính của global object dễ dàng hơn.
4. Ví dụ thực tế
Nếu bạn viết TypeScript cho cả trình duyệt và Node.js, việc sử dụng typeof globalThis
đảm bảo bạn có thể truy cập đúng global object mà không cần kiểm tra môi trường:
Khi TypeScript định nghĩa global
là typeof globalThis
, nó giúp mã nguồn:
Nhất quán giữa các môi trường (Node.js, trình duyệt, Web Workers).
Tận dụng tiêu chuẩn ES2020 (globalThis
).
Tránh phải kiểm tra thủ công xem đang chạy trên trình duyệt hay Node.js.
Nếu bạn cần code chạy trên cả hai môi trường, hãy sử dụng globalThis
thay vì window
hoặc global
riêng lẻ. 🚀