javascript - Node.js 流上的 Typescript - 错误地扩展了基类 'Transform'

标签 javascript typescript node.js-stream

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);
        }
    }

我在上述代码中遇到以下错误。

类“TestStream”错误地扩展了基类“Transform”。 属性“write”的类型不兼容。 类型 '(data: any, enc: string, cb: Function) => boolean' 不可分配给类型 '{ (chunk: any, cb?: Function): boolean; ( block :任意,编码?:字符串,cb?:函数): bool 值; }'。

最佳答案

由于 write 支持以下重载:

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

第二个参数可以是编码或回调。您必须在代码中处理它:

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);
    }        
}

关于javascript - Node.js 流上的 Typescript - 错误地扩展了基类 'Transform',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44694145/

相关文章:

javascript - gulp中vinyl-buffer和gulp-streamify的目的是什么?

node.js - Node JS : Uncork() method on writable stream doesn't really flush the data

javascript - memoize continuation passing style 函数

javascript - 无法使用脚本标签添加js文件

javascript - 将 Angular JavaScript 模块导入 TypeScript

interface - 使用裸函数签名和其他字段实现 TypeScript 接口(interface)

node.js - Node TLS 客户端中出现神秘 TCP 错误

javascript - 我可以将社交按钮脚本放入一个组合文件中吗?

javascript - 使用 getUserMedia 停止视频

reactjs - react native 和 typescript 多内联样式