TypeScript中的嵌套方法

时间:2014-07-27 19:38:09

标签: javascript typescript

在纯JavaScript中我们可以做到:

var x = {
    y: {
        a: function() {},
        b: function(o, e) {}
    },
    z: function() {}
}

通过在TypeScript中使用class的句法糖,我们可以嵌套方法吗?类似于伪代码的东西:

class x {
    y: {
        a() {};
        b() {};
    }
    z() {};
}

然后致电:

> x.y.a
< function() {}
> x.y.b
< function() {}
> x.y
< [Object object]
> x.z
> function() {}

使用类似命名空间,但不进入内部模块和其他模块。只是按课程。当我使用纯JS时,它可以工作,但如何将第一个代码移植到TypeScript?

2 个答案:

答案 0 :(得分:4)

你走了:

class X {
    y = {
        a:()=> {},
        b:()=> {}
    }
    z() {}
}

var x = new X();

答案 1 :(得分:2)

.y属性可以作为单独的类输入:

class Y {
    a() {}
    b(o, e) {}
}
class X {
    y = new Y();
    z() {}
}

顺便说一句,这些不是&#34;嵌套方法&#34;。嵌套方法将是函数内部的函数,更像是:

function outer() {
    function nested() {
        // code...
    }
}