2015-06-16 59 views
0

我想在這裏運行第一個例子。 Rx.Observable.fromEvent(element, eventName, [selector])運行RxJS官方`fromEvent`時輸入錯誤教程

但編譯時,編譯器會引發以下錯誤。

Uncaught exception: { [TypeScript error: index.ts(44,38): Error TS2345: Argument of type 'JQuery' is not assignable to parameter of type 'Node'. Property 'attributes' is missing in type 'JQuery'.]
message: 'index.ts(44,38): Error TS2345: Argument of type \'JQuery\' is not assignable to parameter of type \'Node\'.\n Property \'attributes\' is missing in type \'JQuery\'.'

var source = Rx.Observable.fromEvent(input, 'click'); 

輸入是

var input = $('#input'); 

以下是我的進口:

/// <reference path="./typings/rx/rx.d.ts" /> 
/// <reference path="./typings/rx/rx.async.d.ts" /> 
/// <reference path="./typings/jquery/jquery.d.ts" /> 

import Rx = require('rx'); 
import $ = require('jquery'); 
+0

那麼你的'輸入'在哪裏? –

回答

1

Argument of type 'JQuery' is not assignable to parameter of type 'Node'

您需要訪問底層的DOM元素。一種方法是使用字符串索引器[0]

var source = Rx.Observable.fromEvent(input[0], 'click'); 
+1

嗯看起來更像是宣言是不正確的?至少該文檔明確指出jQuery對象也是受歡迎的。聲明在[rx.async-lite.d.ts]裏面(https://github.com/borisyankov/DefinitelyTyped/blob/2d4c4679bc2b509f27435a4f9da5e2de11258571/rx/rx.async-lite.d.ts)。 –

+1

@ Aszune's Heart也許你需要使用一個正式的打印文件https://github.com/Reactive-Extensions/RxJS/blob/master/ts/rx.async-lite.d.ts其中包含jQuery中的開/關符號。 – xgrommx