覆盖打字稿中的全局类型
Overriding global type in typescript
我正在使用两个第三方打字稿库。它们都使用 Window 接口公开相同命名的全局变量。他们都在该变量上公开了不同的方法。
例如:
第一个图书馆有 abc.d.ts
其中将测试变量公开为全局
global {
interface Window {
Test: {
A: () => void;
B: () => void;
C: () => void;
};
}
}
第二个库有 pqr.d.ts,它也将 Test 变量公开为全局变量,
global {
interface Window {
Test: {
P: () => void;
Q: () => void;
R: () => void;
};
}
}
我想同时使用这两个库及其提供的所有函数(A、B、C、P、Q 和 R)。但是,有一次我只能选择单个库。
谁能帮我实现这个目标?
将Test
移动到它自己的界面中。这将允许您根据需要进行扩展。所以:
// 库 1:
global {
interface Test {
A: () => void;
B: () => void;
C: () => void;
};
interface Window {
Test: Test
}
}
// 库 2:
global {
interface Test {
P: () => void;
Q: () => void;
R: () => void;
};
interface Window {
Test: Test
}
}
更多
本质上,您的界面 Test
将以与预定义界面 Window
相同的方式进行扩展。
我正在使用两个第三方打字稿库。它们都使用 Window 接口公开相同命名的全局变量。他们都在该变量上公开了不同的方法。 例如:
第一个图书馆有 abc.d.ts 其中将测试变量公开为全局
global {
interface Window {
Test: {
A: () => void;
B: () => void;
C: () => void;
};
}
}
第二个库有 pqr.d.ts,它也将 Test 变量公开为全局变量,
global {
interface Window {
Test: {
P: () => void;
Q: () => void;
R: () => void;
};
}
}
我想同时使用这两个库及其提供的所有函数(A、B、C、P、Q 和 R)。但是,有一次我只能选择单个库。 谁能帮我实现这个目标?
将Test
移动到它自己的界面中。这将允许您根据需要进行扩展。所以:
// 库 1:
global {
interface Test {
A: () => void;
B: () => void;
C: () => void;
};
interface Window {
Test: Test
}
}
// 库 2:
global {
interface Test {
P: () => void;
Q: () => void;
R: () => void;
};
interface Window {
Test: Test
}
}
更多
本质上,您的界面 Test
将以与预定义界面 Window
相同的方式进行扩展。