javascript - typescript เกิดข้อผิดพลาดในการเข้าถึงสมบัติของ globalThis
ฉันกำลังพยายามเข้าถึงคุณสมบัติ globalThis แต่ได้รับข้อผิดพลาด:
Element implicitly has an 'any' type because type 'typeof globalThis' has no index signature`.
// both getting...
if (!globalThis.foo) {}
// and setting...
globalThis.foo = 'bar
สิ่งเดียวที่ฉันหาทางออนไลน์เกี่ยวกับเรื่องนี้ได้ คือเกี่ยวกับการใช้ window และให้คำประกาศเพื่อสนับสนุนมัน แต่ไม่ใช่สำหรับ globalThis มีใครรู้วิธีสนับสนุนเรื่องนี้ไหม?
คำตอบ #1
ตามเอกสารของ globalThis ดูเหมือนว่า วิธีที่ "ถูกต้อง" ในการทำเช่นนี้คือการประกาศ var ระดับโลกชื่อ foo ซึ่งจะถูกเพิ่มไปยัง globalThis
ถ้าโค้ดของคุณอยู่ในสโคประดับโลก แบบนี้จะใช้งานได้:
var foo: string;
ถ้าโค้ดของคุณอยู่ในโมดูล คุณจะต้องห่อมันด้วยคำประกาศ global:
export const thisIsAModule = true; // <-- definitely in a module
declare global {
var foo: string;
}
หลังจากนั้น คุณควรจะสามารถเข้าถึง globalThis.foo ตามที่ต้องการได้:
globalThis.foo = "bar"; // no error
ลิงก์ Playground ไปยังโค้ด
