我正在尝试在Typescript项目中使用Salesforce JavaScript SDK.
它有一个名为canvas-all.js的文件.该文件有一个名为Sfdc的变量.
我们有一些JavaScript可以成功使用它.使用它所需要做的就是将其添加到index.html
<script type="text/javascript" src="./plugins/canvas-sdk/js/canvas-all.js"></script>
但是Typescript对此一无所知. (说找不到名字Sfdc)
我试图像这样导入它:
import * as canvas from '../plugins/canvas-sdk/js/canvas-all';
但这给出了错误:
Cannot find module ‘../plugins/canvas-sdk/js/canvas-all’.
我想为此需要一个.d.ts,但是我找不到一个,并且我没有成功尝试制作一个.
我看过以下文章:https://www.stevefenton.co.uk/2013/01/complex-typescript-definitions-made-easy/,但似乎无济于事.
该文章中的第2步适用于那些只希望释放Typescript的用户(我的情况).但是它所声明的只是声明var amazingToolkit:任何(它没有放置任何位置或如何使用打字稿识别您需要使用的文件中的内容的上下文.)
我不需要智力.我只想将Sfdc看作是any,以便当我执行以下操作时Typescript可以编译:
Sfdc.canvas.client.refreshSignedRequest( .....
所以这是我的问题:
如何使具有许多功能的JavaScript文件成为最简单的Typescript定义文件(.d.ts)?
以及如何将其“连接”到JavaScript(canvas-all.js)文件(没有模块)并导入到我的Typescript(myApplicationFile.ts)文件中?
解决方法:
好的,这就是行得通的.我制作了一个名为canvas-all.d.ts的文件,并将其放入其中:
declare var Sfdc: any;
重建后,错误消失了.我之前曾尝试过此方法,但没有进行全面重建.没有重建,Visual Studio看不到它.
原文地址:https://codeday.me/bug/20191119/2034581.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。