我们将Typescript项目(React)嵌入到我们的网页中。在某些情况下,我们还需要允许我们的Typescript代码与页面上的其他元素进行通信。
例如,我们想要一个链接来为React组件中的按钮打开React-Typescript组件,反之亦然,以打开基于jquery的模式。
出于这些目的,我们在window对象上创建了一个对象。
window.gwFunctions = {
openModal: ()=>{
codeToOpenModal
}
}
VSCode看到window.gwFunctions
Property 'TS_FUNCTIONS' does not exist on type 'Window'.ts(2339)
它建议对declare property gwFunctions
进行修复。选择此选项将通过在lib.dom.d.ts
的窗口界面上声明此属性来解决该问题。唯一的问题是此文件位于C:\Program Files\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\lib.dom.d.ts
中,该文件由所有项目/工作区共享。
是否可以仅在当前项目/工作区上声明此属性?
答案 0 :(得分:0)
您可以通过将其放置在TypeScript文件中来添加到Window类型定义。
declare global {
interface Window {
gwFunctions: {
[key: string]: () => void;
}
}
}
lib.dom.d.ts文件中的类型声明将与您定义的类型声明合并。 Here is the official documentation on declaration merging in the TypeScript handbook.