如何从其他js文件扩展类而不需要声明文件

第三个Javascript Lib

// publish at npm event-emitter export default class EventEmitter{ emit(){ // do something } on(){ // do something } } 

打字稿文件

 import EventEmitter from 'event-emitter'; class Http extends EventEmitter{ constructor() { super(); this.emit(); // error TS2339: Property 'emit' does not exist on type 'Http' } } 

错误TS2339:属性'emit'在types'Http'上不存在

问题是:如果它没有index.d.ts文件,如何扩展这个类?

我用webpackbuild立这个 当我build立成功。 我发现从事件发射器导入eventEmitter; 相等未定义。

为了抑制types检查错误,您将需要向TypeScript提供一个声明文件。 如果你使用stream行的npm包,那么你可以在DefinitelyTyped上find它的types。

您可以从npm @typings专用包中为TypeScript 2.x安装DefinitelyTypedtypes,或者使用TypeScript 1.x的types包pipe理器。

例:

 // for TypeScript 2.x or you can still use typings npm install @types/angularjs // for TypeScript 1.x npm install -g typings typings install angularjs --save 

如果你找不到你的包装的types,你可以很容易地写出来。 只需按照TypeScript文档中关于如何编写声明文件的指导进行操作即可 。

之后,随时发布! 社区会真的很感激。

干杯!