如何从其他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文档中关于如何编写声明文件的指导进行操作即可 。
之后,随时发布! 社区会真的很感激。
干杯!