我有这段代码:
this.$(<string> button.className + ' input').bootstrapToggle('on');
Typescript给了我这个错误:
error TS2339: Property 'bootstrapToggle' does not exist on type 'JQuery<HTMLElement>'.
我成功修复了错误:
(<any> this.$(<string> button.className + ' input')).bootstrapToggle('on');
为什么声明元素是&#39;任何&#39;类型解决此错误?
答案 0 :(得分:1)
这是因为jquery的声明文件中没有定义bootstrapToggle
。
尝试通过在项目的.d.ts
文件中添加此类型的声明来添加此定义
interface BootstrapToggleOptions {
on?: string;
off?: string;
onstyle?: OnOffStyle;
offstyle?: OnOffStyle;
size?: Size;
width?: number;
height?: number;
}
type OnOffStyle = "default" | "primary" | "success" | "info" | "warning" | "danger";
type Size = "large" | "normal" | "small" | "mini";
interface JQuery {
bootstrapToggle(): JQuery;
bootstrapToggle(options?: BootstrapToggleOptions): JQuery;
}
使用(<any> this.$(<string> button.className + ' input'))
hack,不建议它打败输入点。