// 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:属性'发出'在' Http'
类型中不存在问题是:如果没有index.d.ts文件,如何扩展这个类?
我用webpack构建它。当我建立成功。 我发现导入eventEmitter来自' event-emitter&#39 ;; 等于undefined。
答案 0 :(得分:1)
为了抑制类型检查错误,您需要向TypeScript提供声明文件。如果你使用流行的npm包,那么你可以在DefinitelyTyped找到它的包含的几率非常高。
您可以从他们的npm @typings私有软件包中为TypeScript 2.x安装DefinitelyTyped类型,或者使用TypeScript 1.x的typings软件包管理器。
示例:
// 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
如果您无法找到包裹的打字,您可以轻松编写。只需按照how to write declaration files上的TypeScript文档中的指南操作即可。
之后,随时发布它们!社区将非常感激。
干杯!