Angular2 Ionic with socket.io:未解析的函数io



socket.io包含如下:

    <body>
      <ion-app></ion-app>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.4.8/socket.io.js"></script>
      <!-- cordova.js required for cordova apps -->
....
...
</body>

在服务中:

import '..';
@Injectable()
export class ApiEndpoint {
  public socket: any;
  constructor() {
    this.socket = io(remote);  <-- ERROR Cannot find name 'io'.
  }
}

我该如何处理此错误?顺便说一句,这只是编译时间错误。令人惊讶的是,这个程序运行得很好。

您可以添加环境声明(称为io(以避免编译时错误:

import '..';
// Prevent compile-time errors
declare var io;
@Injectable()
export class ApiEndpoint {
  public socket: any;
  constructor() {
    this.socket = io(remote);  <-- ERROR Cannot find name 'io'.
  }
}

declare关键字用于环境声明,在环境声明中,您希望定义可能不是源自TypeScript文件的变量。

最新更新