Node.js Typescript包含

时间:2014-07-16 16:26:24

标签: node.js visual-studio typescript visual-studio-2013 ntvs

我认真考虑从PHP切换到Node.js。但我并不喜欢Javascript中的原型设计,所以我更喜欢使用Typescript。

我只是在测试基础知识并在Visual Studio 2013中创建了一个新的(Typescript)Express项目。我安装了Node.js for Visual Studio

我创建了一个名为tstests的目录,使用Typescript教程中的以下代码添加了一个名为animals.ts的文件:

class Animal {
    name: string;
    constructor(theName: string) { this.name = theName; }
    move(meters: number) {
        alert(this.name + " moved " + meters + "m.");
    }
}

class Snake extends Animal {
    constructor(name: string) { super(name); }
    move() {
        alert("Slithering...");
        super.move(5);
    }
}

class Horse extends Animal {
    constructor(name: string) { super(name); }
    move() {
        alert("Galloping...");
        super.move(45);
    }
}

然后我将以下代码添加到app.ts:

/// <reference path='tstests/animals.ts'/>
var sam = new Snake("Sammy the Python");
sam.move();

IntelliSense和构建项目都有效,但是当我尝试运行项目时,我得到一个ReferenceError:Snake未定义。

任何人都可以向我解释我如何解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

当您在Node上运行时,您可以使用外部模块。

替换:

/// <reference path='tstests/animals.ts'/>

使用

import Animals = require('tstests/animals');

animals.ts中,将export添加到您想要提供的任何课程中......

//...
export class Snake extends Animal {
//...

您现在可以使用以下方式引用Snake课程。

var sam = new Animals.Snake("Sammy the Python");

Node将为您加载模块并使其可用。

如果您在浏览器中运行,则必须确保在脚本标记内以正确的顺序引用每个脚本 - 但您可以避免所有这些工作,因为Node将为您完成所有操作。