【发布时间】:2017-11-24 14:08:11
【问题描述】:
我正在尝试在我的 Angular 5 应用程序中使用 SignalR。
我从 DefinitelyTyped 安装了这些强类型:
npm install --save @types/jquery
npm install --save @types/signalr
我的packages.json 中的打字稿显示版本 2.5.3。
现在我尝试这样使用它:
import { Injectable } from '@angular/core';
@Injectable()
export class SignalRService {
constructor() {}
public ConnectTo(url: string): void {
var hubConnection = $.hubConnection();
var hubProxy = hubConnection.createHubProxy('DashboardHub');
hubProxy.on('Example', (e: any) => {
console.log('worked');
});
hubConnection.start();
}
}
编译器报错如下:
error TS2304: Cannot find name '$'.
...虽然智能感知可以找到$.hub:
如果我尝试将declare var $ :any; 添加到我的文件中,它会编译,但在浏览器的控制台中出现另一个错误:$.hubConnection is not a function。
我错过了什么吗?
【问题讨论】:
-
你还没有声明 $ :reference to another thread
-
@JanSomersJanS91 我认为这是一种较旧的方法,而DefinitelyTypes 将使这不再是必需的。无论如何,如果我添加它,我会得到
$.hubConnection is not a function。 -
嗯,奇怪,这不起作用……也许你可以试试this
-
@JanSomersJanS91 我尝试了
npm install jquery --save并将其添加到angular-cli.json,仍然是$.hubConnection is not a function。
标签: angular typescript npm signalr