相关疑难解决方法(0)

如何在TypeScript中的`window`上显式设置新属性?

我通过显式设置属性来为我的对象设置全局命名空间window.

window.MyNamespace = window.MyNamespace || {};
Run Code Online (Sandbox Code Playgroud)

TypeScript强调MyNamespace并抱怨:

属性'MyNamespace'在'window'类型的值上不存在任何"

我可以通过声明MyNamespace为环境变量并删除window显式来使代码工作,但我不想这样做.

declare var MyNamespace: any;

MyNamespace = MyNamespace || {};
Run Code Online (Sandbox Code Playgroud)

我怎样才能window留在那里让TypeScript开心?

作为旁注,我发现TypeScript抱怨特别有趣,因为它告诉我这种window类型any绝对可以包含任何东西.

typescript

502
推荐指数
25
解决办法
27万
查看次数

使用Typescript时,如何停止"类型JQuery上不存在属性"语法错误?

我只在我的应用程序中使用一行jQuery:

$("div.printArea").printArea();
Run Code Online (Sandbox Code Playgroud)

但这给了我一个Typescript错误:

JQuery类型中不存在属性'printArea'?

有人能告诉我如何阻止出现这个错误吗?

jquery typescript

66
推荐指数
3
解决办法
8万
查看次数

如何在TypeScript中扩展JQuery函数

我正在重写TypeScript上的一些JS代码,遇到模块导入问题.例如,我想写我的toggleVisiblity功能.这是代码:

/// <reference path="../../typings/jquery/jquery.d.ts" />

import * as $ from "jquery";

interface JQuery {
    toggleVisibility(): JQuery;
}

$.fn.extend({
    toggleVisibility: function () {
        return this.each(function () {
            const $this = $(this);
            const visibility = $this.css('visibility') === 'hidden' ? 'visible' : 'hidden';
            $this.css('visibility', visibility);
        });
    }
});

const jQuery = $('foo');
const value = jQuery.val();
jQuery.toggleVisibility();
Run Code Online (Sandbox Code Playgroud)

但问题是,由于未知原因toggleVisibility没有添加到JQuery界面,因此我得到一个错误Property 'toggleVisibility' does not exist on type 'JQuery'.,虽然它看到其他方法(val,each等等).

为什么不起作用?

在此输入图像描述

jquery interface typescript es6-modules

14
推荐指数
2
解决办法
9084
查看次数

标签 统计

typescript ×3

jquery ×2

es6-modules ×1

interface ×1