如何扩展节点的流



我正在尝试为可读流创建一个方法,但是在尝试了一点点之后,我对如何做没有想法。

import * as stream from 'stream'
//yields Property 'asdasas' does not exists on type 'Readable'
stream.Readable.prototype.asdasas 
//yields asdas does not exists on type 'typeof Readable'
stream.Readable.asdas

有人可以给我一个解决方案并解释为什么会发生错误吗?谢谢

解释错误发生的原因

从 JavaScript 迁移到 TypeScript 的第一条规则:

声明您使用的内容

https://basarat.gitbooks.io/typescript/content/docs/types/migrating.html

在这里Readable没有您要查找的成员。如果要添加它,则需要声明它。像这样:

interface Readable {
  asdfasdfasdf: any;
}

我设法扩展了它们。这种行为并不像我想象的那么不寻常(我仍然希望解释一下"类型'可读'"和"类型'类型可读'"的区别。代码:

import * as stream from 'stream'
class mod_Readable extends stream.Readable {
    pipe<T extends NodeJS.WritableStream>(destination: T, options?: { end?: boolean; }): T {
        //whatever
        return super.pipe(destination, options)
    }
}

相关内容

  • 没有找到相关文章

最新更新