javascript - 调用 jquery $(html :string) from TypeScript

标签 javascript jquery html dom typescript

我正在使用 TypeScript 从模板化 string 生成一些 DOM 元素。现在我知道在普通的旧 javascript + JQuery 中你可以这样做: var domObj = $(myString)或使其更明显:var comObj = $('<div></div>');它的工作原理就是这样。

我一直在尝试对 TS 做同样的事情,但总是收到一些错误,告诉我它无法说出要使用哪个重载。

还有其他方法可以完成我想做的事情吗? 可以在TS中完成吗?

编辑:

我面临的问题不是如何使用 JQuery来自 TypeScript 是关于我想要加载的特定功能 string变量为 JQuery对象,我知道它可以用普通的旧方式来完成 js但这样做时我遇到了重载错误。

this question不同它询问如何使用 JQuery来自ts ,除了我刚才提到的小细节之外,我已经弄清楚了大部分内容

最佳答案

根据我上面的评论,您需要使用 type assertion以避免该错误。

最通用的选项是使用 any输入,因为这将防止抛出输入错误:

var comObj = ($('<div></div>') as any);

// or

var comObj = (<any>$('<div></div>'));

// or

var comObj: any = $('<div></div>');

如果没有看到完整的代码,就很难知道您的案例到底发生了什么。

但是,如果没有上下文,问题似乎是编译器认为您正在传递一个表示 CSS 选择器的字符串,但实际上您正在传递字符串化的 HTML,这会导致您看到的错误。

<小时/>

作为旁注,这里是 advanced intersection types 下 TypeScript 文档中的相关片段。 。如您所见,变量result本质上是使用 <any> 强制的类型断言:

let result = <T & U>{};
for (let id in first) {
    (<any>result)[id] = (<any>first)[id];
}

关于javascript - 调用 jquery $(html :string) from TypeScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41942063/

相关文章:

java - 内容可编辑,无法编辑空白范围

javascript - 可汗学院计算机程序如何离线运行或在我自己的网站上运行?

javascript - 带数字的 lodash 路径

javascript - 网页上基于 3DSMax .obj/.max 的模型显示与 AJAX 可点击功能集成

javascript - 如何组合元素变换?

javascript - 每行所有列的高度相等

javascript - 使用 jquery 显示更新

javascript - IE-8/IE-9 上的 Quickblox

jQuery 不适用于动态创建的输入字段

javascript - 为什么 `keyup` 和 `if` 在我的代码中不起作用?