六帖のかたすみ

DVを受けていた男性。家を脱出して二周目の人生を生きています。自閉症スペクトラム(受動型)です。http://rokujo.org/ に引っ越しました。

TypeScriptのスコープ

TypeScriptには、カッコ内のみ有効になるスコープはないようだ。例えば以下のコードはコンパイルエラーにならないが、まともに動作しない。

for (var i in this.elements) {
    var element: GraphElement = this.elements[i];
    if (element.date >= xrange.start && element.date <= xrange.end) {
        this.validElements.push(element);
    }
}
for (var i in this.validElements) {
    //elementがエラーにならない
    element.paint(stage, min, max, xrange.GetX(element.date), xrange.xsize, xrange.xmin, xrange.xmax, this.ymin, this.ymax);
}

これがC#だとelementなんかないよ、ってエラーになるんだけどね。javascriptでもこれはエラーにならない。ただしどちらの場合も、elementはundefinedとなるので、動作はしない。