2016-04-27 12 views
0

私はtypescriptで 'http'ノードモジュールを使用しています。コールバック '関数'型をキャストする方法は?

私は、response.setEncodingを呼び出した後、response.onとコールすると、 'string'というコールバックを取得しました。私は '弦'をキャストしようとします。しかし、私はstringを取得するためにstringまたは適切な方法にlistenerをキャストする方法この

import * as http from "http"; 
import {IncomingMessage} from "http"; 

http.get("http://example.com", (response: IncomingMessage) => { 
    response.setEncoding("utf8"); 
    response.on("data", (listener: Function) => { 
     if (typeof listener === "string") { 
      let matchArray: RegExpMatchArray = (listener as string).match(/a/g); // TS2352: Neither type 'Function' nor type 'string' is assignable to the other. 
      console.log(matchArray); 
     } 
    }); 
}); 

のようなエラーTS2352: Neither type 'Function' nor type 'string' is assignable to the other.

を得ましたか。

答えて

1

パラメータlistenerFunctionまたはstringことができれば、それは労働組合タイプFunction|stringと宣言することができます。

import * as http from "http"; 
import {IncomingMessage} from "http"; 

http.get("http://example.com", (response: IncomingMessage) => { 
    response.setEncoding("utf8"); 
    response.on("data", (listener: Function|string) => { 
     if (typeof listener === "string") { 
      let matchArray: RegExpMatchArray = listener.match(/a/g); 
      console.log(matchArray); 
     } 
    }); 
}); 
関連する問題