2017-09-15 57 views
0

我想用TypeScript在WebSocket中發送消息。在我的控制檯住這一點,它的工作原理:轉換爲TypeScript

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

我想它翻譯成打字稿:

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

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

我不明白如何與pnotify參數做,因爲它不是由打字稿認可。

當我試試這個:

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' 
+0

應該反正工作,除非你正在運行'用選項tsc''自動定位類型定義的版本 - -noEmitOnError = TRUE'。但是,爲了實際解決您的問題,請參閱下面的答案。 –

+0

@PascalBayer 感謝您的回答,但在使用npm下載軟件包後,我必須在程序中添加一些內容?因爲這不會改變我的問題。 'pnotify'仍然不被識別 – Floriane

回答

1

你所面臨的問題可以通過安裝類型定義pnotify來解決。

取決於您是否使用npm或紗線,您需要執行npm install --save-dev @types/jquery.pnotifyyarn add --dev @types/jquery.pnotify

還要確保您使用的是最近的打字稿,它內部的@types/ - 文件夾

+0

用npm下載軟件包後,我必須添加一些東西到我的程序中? 因爲這不會改變我的問題。 'pnotify'仍然不被識別 – Floriane

+0

@Floriane你可以概述你的項目的設置嗎? –

相關問題