我正在使用 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/