【问题标题】:SignalR in Angular2 (Typescript) - Import ErrorAngular2(Typescript)中的 SignalR - 导入错误
【发布时间】:2017-03-20 18:27:45
【问题描述】:

我在 Angular2-Typescript 应用程序中使用 signalR 时遇到问题。我让它在以前的 Angular 1 应用程序中运行良好。我的问题在于导入。

我有 intellisense 工作,但强类型似乎没有正确映射到原始 js 文件。

在 node_modules 中,我有这两个文件夹(此处为空间编辑):

├───jquery
│   │   jquery.d.ts
│   │   LICENSE.txt
│   │   package.json
│   │   README.md
│   │
│   ├───dist
│   │       core.js
│   │       jquery.js
│
└───signalr
        jquery.signalR.js
        jquery.signalR.min.js
        package.json
        signalr.d.ts

jquery.d.ts 文件是这个: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/jquery/jquery.d.ts

signalr.d.ts 文件是这个: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/signalr/signalr.d.ts

注意:我已经编辑signalr.d.ts在最后添加了这个,否则无法导入:

declare var sr : JQueryStatic;

declare module 'signalr'{
    export = sr;
}

在 systemjs.config.js 中,我使用它来导入信号器:

map: {
'signalr': 'npm:signalr/jquery.signalR.js'
}

然后在我的组件中使用:

import * as $ from 'signalr'

然后我可以访问智能感知,例如:

但是,也有问题。如果我使用:

console.log($.hubConnection);

我不确定。

对此的任何帮助将不胜感激。

【问题讨论】:

    标签: angular typescript


    【解决方案1】:

    你可以试试这个方法

    map: {
          'ms-signalr-client': 'npm:ms-signalr-client/jquery.signalR.min.js',
          'jquery': 'npm:jquery/jquery.min.js'
    }
    

    在你的 ts 中

        import 'ms-signalr-client';
        import * as $ from 'jquery'; 
        ...
        $.hubConnection
        ...
    

    希望对你有帮助

    【讨论】:

    • 这行得通。谢谢你。在 systemjs.config 中,我将其指向“jquery/dist/jquery.js”,当在组件中选择“转到定义”时,我被带到文件:jquery.d.ts。 PS。我之前修改了 package.json 文件以包含类型参考:“typings”:“./jquery.d.ts”。
    • 不客气。当然,您应该指向jquery/dist/jquery.min.js 和typings.json 中的"jquery": "registry:dt/jquery#1.10.0+20160929162922", "signalr": "registry:dt/signalr#2.2.0+20160509082439"。很抱歉造成混乱,只是赶时间
    猜你喜欢
    • 2020-12-03
    • 2016-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-05
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    相关资源
    最近更新 更多