2017-06-22 7 views
1
import { Transform } from "stream";  
export class TestStream extends Transform { 

     constructor(options) { 
      super(options); 
     } 

     write(data: any, enc: string, cb: Function) { 
      return super.write(data, enc, cb); 
     } 
    } 

上記のコードでエラーが発生します。node.jsストリーム上のTypescript - ベースクラス 'Transform'を間違って拡張します

'TestStream'クラスは、基本クラス 'Transform'を誤って拡張します。 プロパティ 'write'の型は互換性がありません。 = 'boolean'は型 '{(chunk:any、cb ?: Function):Boolean}に代入不可能です。 (チャンク:any、encoding ?: string、cb?:Function):boolean; } '。

答えて

2

のために使用されている

write(data: any, enc?: string, cb?: Function) { 
    return super.write(data, enc, cb); 
} 

お知らせ?には、以下のオーバーロードをサポートしてみてください。

write(chunk: any, encodingOrCB?: string | Function, cb?: Function): boolean { 
    if (typeof encodingOrCB == "string") { 
     return super.write(chunk, encodingOrCB, cb); 
    } 
    else { 
     return super.write(chunk, encodingOrCB); 
    }   
} 
+0

ありがとうございました!!! –

0

機能writeが間違って上書きされています。

write(chunk: any, cb?: Function): boolean; 
write(chunk: any, encoding?: string, cb?: Function): boolean; 

2番目のパラメータは符号化やコールバックのいずれかである:

は、それがwriteので、オプションのパラメータ

+0

パラメータの種類 'enc'と 'cb'は互換性がありません。タイプ 'Function'はタイプ 'string'に割り当てられません。エラーメッセージ –

関連する問題