打字稿运行时错误

时间:2014-07-11 15:14:26

标签: javascript class visual-studio-2013 typescript

我对javascript / typescript比较新,我收到的运行时错误我不太明白。我正在尝试创建一个TrailingAvg类的实例,但是当我对其进行decalre并产生javascript运行时错误时,我的代码会中断 - TrailingAvg未定义。我虽然我正确设置了类并且语法被接受,但我无法创建此实例。在Typescript中创建类的实例需要做什么?

function drawChart(n) {
        uri = getURLParameter("url");
        setupHeader();
        setupMenu();
        var totalcount = 5;
        var prevmonth = 0;
        var trail = new TrailingAvg(n); //run time error here

    }
class TrailingAvg {
    totals: number[] = [];
    average: number;
    size: number;
    constructor(n: number) {
        this.size = n;
    }
    push(month, prevmonth, value) {
        var zeroes = month - prevmonth;
        for (var i = 0; i < zeroes; i++) {
            this.totals.shift();
            this.totals.push(0);
        }

        this.totals.push(value);
    }
    getAvg() {
        for (var i = 0; i < this.totals.length; i++) {
            this.average = this.average + this.totals[i];

        }
        return this.average;
    }
}

1 个答案:

答案 0 :(得分:2)

类定义必须在之前尝试使用它的任何代码。这通常会以两种方式之一出错:

哎呀,我现在有两个文件

问题:您有foo.ts并决定将其拆分为foo.tsbar.ts。这会编译为foo.jsbar.js,但您的HTML页面只会显示

<script src="foo.js"></script>

解决方案:修复HTML页面以获得其他脚本标记:

<script src="foo.js"></script>
<script src="bar.js"></script>

什么是脚本排序?

问题:您有animal.tscat.ts,其中cat.ts依赖animal.ts。您将HTML编写为:

<script src="cat.js"></script>
<script src="animal.js"></script>

并从animal.ts未定义的内容中获取运行时错误。这是因为脚本按照页面中给出的顺序执行。

解决方案:按依赖顺序排序文件:

<script src="animal.js"></script>
<script src="cat.js"></script>