node.js 流上的打字稿 - 错误地扩展了基础 class 'Transform'
Typescript on node.js stream - incorrectly extends base class 'Transform'
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);
}
}
我在上面的代码中遇到以下错误。
Class 'TestStream' 错误地扩展了基础 class 'Transform'。
属性 'write' 的类型不兼容。
类型 '(data: any, enc: string, cb: Function) => boolean' 不可分配给类型 '{ (chunk: any, cb?: Function): boolean; (块:任意,编码?:字符串,cb?:函数):布尔值; }'.
您正在错误地覆盖函数 write
。
尝试
write(data: any, enc?: string, cb?: Function) {
return super.write(data, enc, cb);
}
注意?
它用于可选参数
因为 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);
}
}
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);
}
}
我在上面的代码中遇到以下错误。
Class 'TestStream' 错误地扩展了基础 class 'Transform'。 属性 'write' 的类型不兼容。 类型 '(data: any, enc: string, cb: Function) => boolean' 不可分配给类型 '{ (chunk: any, cb?: Function): boolean; (块:任意,编码?:字符串,cb?:函数):布尔值; }'.
您正在错误地覆盖函数 write
。
尝试
write(data: any, enc?: string, cb?: Function) {
return super.write(data, enc, cb);
}
注意?
它用于可选参数
因为 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);
}
}