我有一个npm包(@salesforce / canvas-js-sdk),它没有针对它的Typescript定义文件。我正在使用React,因此我使用“import from”语法来引入依赖项。 Visual Studio似乎不喜欢模块没有定义文件。此外,该模块应该在名为Sfdc的“窗口”对象上公开属性。如何在不修改包的情况下为此npm包定义定义文件?
我一直在尝试:
这是我目前的导入语句。
然后我为这个模块定义了一个非常简单的定义。
解决了无法找到模块定义的编译错误。但是,如果我尝试使用Sfdc对象,就像在示例中一样,它不起作用。
但是如果我复制并粘贴它,那么代码在运行时对我不起作用。相反,如果我使用
,我只能获得对Sfdc对象的引用答案 0 :(得分:1)
鉴于该模块实际上不是一个模块(它是一个暴露的全局对象),您需要自定义类型匹配。
而不是declare module '@salesforce/canvas-js-sdk'
尝试撰写declare namespace Sfdc
。
然后,您应该可以删除导入语句并直接从代码中的任何位置访问全局Sfdc
变量。