如何在NodeJS中使用TypeScript正确扩展类?

时间:2015-11-15 04:35:50

标签: node.js typescript typescript1.6

我想在NodeJS环境中使用TypeScript。由于我是TypeScript的新手,因此我不确定如何使用NodeJS模块系统正确扩展类。

我想用if ($_FILES['file']['error'] == 0) { // move_uploaded_file (single file) // or a for($i=0; $i < $file_count; $i++) (multiple files) } if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) { //filter the data and store it in db } 扩展我的课程Champion

GameObject.ts

GameObject

Champion.ts

///<reference path="../../typings/node/node.d.ts"/>

class GameObject {
    id:number;
    name:string;
}

module.exports = GameObject; 

到目前为止,这不会引发编译错误。

现在我要创建一个我的冠军实例。这就是我尝试过的事情

///<reference path="../../typings/node/node.d.ts"/>
///<reference path="Image.ts"/>
///<reference path="GameObject.ts"/>


class Champion extends GameObject {
    // ...
}

module.exports = Champion;

我的// I tried referencing the Champion.ts which haven't changed anything var Champion = require('../api/types/Champion'); var c = new Champion(); 现在抛出以下错误:

  

ReferenceError:未定义GameObject

所以我认为我需要Champion.js require('GameObject')才能运行我的应用程序。但我得到另一个错误。

我引用Champion.ts require

GameObject

这给了我错误

  

重复标识符GameObject

或者我只是///<reference path="GameObject.ts"/> var GameObject = require('./GameObject'); class Champion extends GameObject { 并获得

  

键入any不是构造函数类型

TypeScript版本

require

1 个答案:

答案 0 :(得分:0)

而不是module.exports = GameObject;使用var/require使用import/require

这将为您提供导入方面的类型安全性。这些称为文件模块,并在此处记录:https://basarat.gitbooks.io/typescript/content/docs/project/modules.html