inheritance - Typescript commonjs 继承

标签 inheritance typescript

正在玩 Ts 并陷入困境

"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 分配给我的接口(interface)类型,这给出了相同的错误。

如何使用 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,这样您就可以使用 IntelliSense 和编译时类型检查等功能

关于inheritance - Typescript commonjs 继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42433213/

相关文章:

C++ 继承 - 引用类型的无效初始化

c++ - 是否可以从模板化智能指针类型继承类

C++ 包含两个派生自同一基类的类

javascript - Angular 2 根据ngFor索引生成类名

java - 从子类访问父类的私有(private)实例变量?

Java 接口(interface)合成方法生成,同时缩小返回类型

reactjs - 多选文件按钮

typescript - 为什么 TypeScript 允许滥用 String 和 string?

typescript - Angular2,通过字符串/名称手动解析类型

html - 列未显示 - 垫表