Socket.io-client - TypeError: socket_io_client_1.default 不是函数

Posted

技术标签:

【中文标题】Socket.io-client - TypeError: socket_io_client_1.default 不是函数【英文标题】:Socket.io-client - TypeError: socket_io_client_1.default is not a function 【发布时间】:2018-08-03 16:04:39 【问题描述】:

我在 Angular 5.2 应用程序中安装了 socket.io-client,在按照连接步骤(以前对我有用,很多次)之后,我遇到了一个奇怪的错误。

TypeError: socket_io_client_1.default is not a function
    at new AuthService (auth.service.ts:15)
    at _createClass (core.js:10891)
    at _createProviderInstance$1 (core.js:10865)
    at resolveNgModuleDep (core.js:10850)
    at NgModuleRef_.get (core.js:12087)
    at resolveDep (core.js:12577)
    at createClass (core.js:12439)
    at createDirectiveInstance (core.js:12284)
    at createViewNodes (core.js:13742)
    at callViewAction (core.js:14176)

这是AuthService的第15行

import Injectable from '@angular/core';
import io from 'socket.io-client';
import CookieService from 'ngx-cookie-service';


@Injectable()
export class AuthService 
  socket;
  domain = 'http://localhost:3000';
  isUserLoggedIn = false;
  cookie_key = '';
  user = ;

  constructor(private cookieService: CookieService) 
    this.socket = io(this.domain);
  

现在不知道发生了什么。有什么指点吗?

【问题讨论】:

试试import * as io from 'socket.io-client'; 那行得通。嗯。谢谢! 很高兴为您提供帮助:) 或者在你的 typescript 配置中使用 esnext 模块编译。 【参考方案1】:

用途:

import * as io from 'socket.io-client'

【讨论】:

【参考方案2】:

我也遇到了同样的错误,所以使用:

import * as io from 'socket.io-client' 

代替:

import io from 'socket.io-client';

【讨论】:

以上是关于Socket.io-client - TypeError: socket_io_client_1.default 不是函数的主要内容,如果未能解决你的问题,请参考以下文章

Angular 2:错误 TS2307:找不到模块“socket.io-client”

无法在 Angular 项目中导入 socket.io-client

如何在 Angular 2 应用程序中导入 socket.io-client?

节点 js - Socket.io-client 未连接到 socket.io 服务器

Socket.io-client 未连接到 socket.io 服务器反应和节点(快递)

在 socket.io-client 中调用 IO 时出错,角度 8