【问题标题】:Translate to TypeScript翻译成打字稿
【发布时间】:2017-09-15 07:55:24
【问题描述】:

我正在尝试使用 TypeScript 在 WebSocket 中发送消息。通过将其保留在我的控制台中,它可以工作:

socket.on('displayHello', function(data) {
    $.pnotify({
        title: "Hello",
        text:  data.from + " te dis bonjour " + data.to,
        type:  "info"
    });
});

我想把它翻译成 TypeScript:

public onMessage(): Observable<any> {
  return new Observable(observer => {
    this.socket.on('displayHello', (data) => {

      observer.next(data);
    });
  });
}

我不知道如何处理 pnotify 参数,因为 TypeScript 无法识别它。

当我尝试这个时:

public onMessage(): Observable<any> {
return new Observable(observer => {
  this.socket.on('displayHello', (data) => {
    observer.next(data);
    $.pnotify({
      title: 'Hello',
      text:  data.from + ' te dis bonjour ' + data.to,
      type:  'info'
    });
  });
});
}

我有这个错误:

TS2339:Property 'pnotify' does not exist on type '(search: string) => ElementFinder'

【问题讨论】:

  • 它应该可以正常工作,除非您使用--noEmitOnError=true 选项运行tsc。但是,要实际解决您的问题,请参阅下面的答案。
  • @PascalBayer 谢谢你的回答,但是用 npm 下载包后,我必须在我的程序中添加一些东西吗?因为那不会改变我的问题。 'pnotify' 仍然无法识别

标签: node.js angular typescript websocket socket.io


【解决方案1】:

您遇到的问题可以通过安装pnotify的类型定义来解决。

根据您使用的是 npm 还是 yarn,您需要执行 npm install --save-dev @types/jquery.pnotifyyarn add --dev @types/jquery.pnotify

还要确保您使用的是最新版本的 TypeScript,它会自动在 @types/-Folder 中找到类型定义

【讨论】:

  • 用npm下载完包后,我的程序还要加点东西吗?因为那不会改变我的问题。 'pnotify' 仍然无法识别
  • @Floriane 你能概括一下你的项目设置吗?
猜你喜欢
  • 2017-11-07
  • 2019-02-11
  • 2017-12-20
  • 2021-08-21
  • 1970-01-01
  • 2019-03-01
  • 2021-08-08
  • 1970-01-01
  • 2013-08-19
相关资源
最近更新 更多