javascript - 尽可能创建最简单的 typescript 定义文件

标签 javascript typescript typescript1.7

我正在尝试使用 Salesforce JavaScript SDK在 Typescript 项目中。

它有一个名为 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 的人(我的场景)。但它所说的只是declare var amazingToolkit: any(它没有关于将它放在哪里或如何让它被你需要使用它的文件中的 typescript 识别的任何上下文。)

我不需要智能感知。我只希望 Sfdc 被视为一个 any,这样当我做这样的事情时 Typescript 就会编译:

Sfdc.canvas.client.refreshSignedRequest( .....

所以这是我的问题:

如何为具有一堆函数的 JavaScript 文件创建最简单的 Typescript 定义文件 (.d.ts)?

我如何将它“连接”到 JavaScript (canvas-all.js) 文件(没有模块)并导入到我的 Typescript (myApplicationFile.js) 中? ts) 文件?

最佳答案

好的,这就是有效的方法。我制作了一个名为 canvas-all.d.ts 的文件并将其放入其中:

declare var Sfdc: any;

重新构建后,错误消失了。我以前试过这个,但没有完全重建。如果没有重建,Visual Studio 看不到它。

关于javascript - 尽可能创建最简单的 typescript 定义文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34539181/

相关文章:

typescript - 类型 'tip' 上不存在属性 'typeof @types/d3/index"'

angular - ASP.NET 5 MVC6 Angular 2 (Beta 0) - 重复 promise

angular - 如何在 Angular 2 中对数据进行分组?

javascript - FormData 不发送附加文件

Javascript - 检测刷新 - onload 和 onunload - 你能同时使用它们来检测刷新吗?

javascript - iron-ajax 绑定(bind)并将 JSON 写入文件

typescript - 如果删除重复的构造函数,通用类表达式就会被破坏

javascript - 如何在js中生成灵活的宽度/高度/行/列的TABLE

TypeScript 语言服务示例

typescript - 在 typescript 中创建一个通用工厂