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

时间:2016-08-30 11:50:01

标签: angular typescript sockets typescript-typings

安装模块socket.io

之后
npm install socket.io --save

我有以下错误:

错误TS2307:找不到模块' socket.io-client'

导入

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

systemjs.config.js

var map = {
    'socket.io-client': 'node_modules/socket.io-client/socket.io.js'
}

var packages = {
    'socket.io-client': { main: 'socket.io', format: 'cjs', defaultExtension: 'js' }
}

的package.json

"dependencies": {
    "socket.io": "^1.4.8"
}

typings.d.ts

/// <reference path="../socket.io-client/socket.io.js" />

declare module 'socket.io-client' {
  var e: any;
  export = e;
}

socket.io-client(目录)   
- socket.io.js   
- typings.d.ts


Angular 2 RC5

3 个答案:

答案 0 :(得分:17)

更新2018

要在浏览器中正确使用socket.io,您需要安装socket.io客户端软件包及其类型:

npm i socket.io-client @types/socket.io-client 

过时:

你缺少打字。 打开typings.d.ts并添加

declare module 'socket.io-client' {
  var e: any;
  export = e;
}

您还可以尝试通过npm i @types/socket.io-client为socket.io安装输入法。不过,我不知道是否有可用的打字。

答案 1 :(得分:15)

确保使用socket.io的类型定义安装正确的包:

npm install @types/socket.io-client --save

这将包括正确文件夹中的类型,这意味着你不需要在任何其他文件中进一步操作,因为angular会选择它。

答案 2 :(得分:0)

我在app.components.ts

的顶部添加了这个解决方法
$fruits = ['bananas', 'apples', 'pears'];
for($i = count($fruits)-1; $i >= 0; $i--) {
    echo $fruits[$i] . '<br>';
}