我正在尝试为可读流创建一个方法,但是在尝试了一点点之后,我对如何做没有想法。
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)
}
}