简体   繁体   English

angular 2 在打字稿中使用 javascript 包

[英]angular 2 use a javascript package in typescript

I'm trying to use SignalR in an Ionic/Angular 2 application.我正在尝试在 Ionic/Angular 2 应用程序中使用 SignalR。

I'm building a simple Hub like so:我正在构建一个简单的集线器,如下所示:

const accessToken = authManager.getRawAccessToken();

let hubUrl = environment.baseUrl + 'messages';
if (accessToken) {
    hubUrl += '?authToken=' + accessToken;
}

this._hubConnection = new HubConnectionBuilder()
                           .withUrl(hubUrl)
                           .build();

I keep getting an error:我不断收到错误消息:

Cannot find name 'XMLHttpRequestResponseType'.找不到名称“XMLHttpRequestResponseType”。

because SignalR requires a higher version of typescript than what's support currently by Ionic.因为 SignalR 需要比 Ionic 当前支持的更高版本的打字稿。 https://github.com/aspnet/SignalR/issues/1375 https://github.com/aspnet/SignalR/issues/1375

I noticed SignalR is shipped by default using Javascript.我注意到 SignalR 是默认使用 Javascript 提供的。 Is there a way I can change my Import statement有什么方法可以更改我的导入语句

import { HubConnection, HubConnectionBuilder } from '@aspnet/signalr';

So I can import javascript into a Typescript file as Any?所以我可以将 javascript 导入到 Typescript 文件中作为 Any?

Edit I've also tried:编辑我也试过:

import * as SignalR from '@aspnet/signalr';

but this still seems to use the typings file.但这似乎仍然使用打字文件。

To use Js instead of Typescript?使用 Js 而不是 Typescript?

Use raw require :使用原始require

const { HubConnection, HubConnectionBuilder } =  require('@aspnet/signalr');

The types for require are provided by npm i @types/node 🌹 require的类型由npm i @types/node 🌹 提供

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM