无法导出/导入TypeScript类:" TypeError:Messenger不是构造函数"

时间:2017-09-15 07:56:09

标签: javascript node.js typescript typescript2.0

我有一个在Typescript文件中实现的类,我能够在它实现的同一个文件中成功创建一个新对象,但如果我尝试将它们导出/导入到单独的文件中,我就会遇到问题。请参阅以下错误消息:

ERROR

nodemon] starting `ts-node src/TestBot.ts`
Initializing Messenger

/Users/some_user/Documents/Src/some_folder/src/TestBot.ts:14
let myBot =  new Messenger(my_page_access_token, my_page_verify_token);
                ^
TypeError: Messenger is not a constructor
    at Object.<anonymous (/Users/some_user/Documents/Src/some_folder/src/TestBot.ts:14:17)

我很感激任何解决问题的方法。

这是实现Messenger类的主要文件

// index.ts
class Messenger extends events.EventEmitter {
    private readonly pageAccessToken: String;
    private readonly pageVerifyToken: String;

    constructor(pageAccessToken: String, pageVerifyToken: String) {
        super();
        if (!pageAccessToken || !pageVerifyToken) {
            console.error("Missing Messenger Tokens");
            throw new TypeError("Missing Messenger Tokens");    
        }
        console.log("Initializing Messenger");
        this.pageAccessToken = pageAccessToken;
        this.pageVerifyToken = pageVerifyToken;
    }
...
...
}
...
export = Messenger;

在同一目录下的TestBot.ts文件中我实例化它

// TestBot.ts
import Messenger = require('./index');

let http = require('http');

let my_page_access_token = 'access_token';
let my_page_verify_token = 'verify_token';

let myBot =  new Messenger(my_page_access_token, my_page_verify_token);

EDIT1:

尝试各种排列

我尝试了各种

的排列
// index.ts
// export = Messenger;
// module.exports = Messenger;
// export default Messenger;
// export * from './index';
// export {Messenger};
// export default Messenger;


// TestBot.ts
// import { Messenger } from './index';
// import Messenger from './index';
// import Messenger = require('./index');
// import './index.ts'

1 个答案:

答案 0 :(得分:0)

似乎带有类定义的文件名不能是“index.ts”。之后,将其更改为其他名称,我不再有问题。

如果我能找到确切原因,我会更新更多细节。另外,很高兴听到别人的解释。