打字稿CommonJS的继承
问题描述:
与TS玩耍,结果被卡在这个打字稿CommonJS的继承
"use strict";
declare const require: any;
const EventEmitter : any = require('events').EventEmitter;
class Foo extends EventEmitter{ //*error* Type 'any' is not a constructor function type.
constructor() {
super();
}
}
我也试图分配EventEmitter
矿的接口类型,这给了同样的错误。
如何扩展一个类,使用Typescript的commonjs模块?
谢谢
答
尝试
"use strict";
import { EventEmitter } from 'events';
class Foo extends EventEmitter {
constructor() {
super();
}
}
您可能需要安装类型定义 '事件' 模块:
npm install --save @types/node
更新
你仍然可以做同样的require
:
"use strict";
import events = require('events');
const EventEmitter = events.EventEmitter;
class Foo extends EventEmitter {
constructor() {
super();
}
}
应避免在一般使用: any
所以你可以使用的功能,如智能感知和编译时类型检查
伟大的答案。也许添加一个笔记,说明为什么在这种情况下使用任何错误,一般情况不好? –
非常感谢! 我真的很喜欢这种方法,但只是为了完成,'require'解决方案也可以使用诸如'node.d.ts'之类的东西,就像这里提到的那样 http://*.com/questions/18378503/importing- node-modules-with-typescript – xhallix
@xhallix是的,你可以。我刚刚更新了答案。 –