您可以在TypeScript中的本地方法中访问本地静态变量吗?

时间:2013-03-24 21:02:58

标签: javascript static typescript

假设我有一个如下课程:

class Types
{
    static TypeOne = 1;
    static TypeTwo = 2;
    static TypeThree = 3;
    static TypeFour = 4;
    static TypeFive = 5;

    public GetNameFromType(type: number) : string
    {
        switch (type)
        {
            case Types.TypeOne: return "TypeOne";
            case Types.TypeTwo: return "TypeTwo";
            case Types.TypeThree: return "TypeThree";
            case Types.TypeFour: return "TypeFour";
            case Types.TypeFive: return "TypeFive";
            default: return "Unknown";
        }
    }
}

现在,在阅读了一些关于静态类的文档后,上面的内容似乎应该可行。但是我一直收到一个错误,说当前范围内不存在Types.TypeOne。

所以我还需要做其他事情,还是应该这样做?

==编辑==

由于错误,我没想到它正在为它输出任何东西,但看起来它有,这是输出:

var Types = (function () {
            function Types() { }
            Types.TypeOne = 1;
            Types.TypeTwo = 2;
            Types.TypeThree = 3;
            Types.TypeFour = 4;
            Types.TypeFive = 5;
            Types.TypeSix = 6;
            Types.prototype.GetNameFromType = function (type) {
                switch(type) {
                    case AbilityTypes.TypeOne:
                        return "TypeOne";
                    case AbilityTypes.TypeTwo:
                        return "TypeTwo";
                    case AbilityTypes.TypeThree:
                        return "TypeThree";
                    case AbilityTypes.TypeFour:
                        return "TypeFour";
                    case AbilityTypes.TypeFive:
                        return "TypeFive";
                    case AbilityTypes.TypeSix:
                        return "TypeSix";
                    default:
                        return "Unknown";
                }
            };
            return Types;
        })();     

这看似合法,所以也许它正在起作用,只是抱怨......

2 个答案:

答案 0 :(得分:0)

您使用的是Typescript 0.8.3吗?你的代码编译好我。如果错误发生在其他地方,请尝试将它们定义为“公共静态”

答案 1 :(得分:0)

将该代码粘贴到Playground(http://www.typescriptlang.org/playground)中没有显示任何错误或警告,并且这与MSI运行相同的0.8.3位。如果你只看到这个代码的错误,我会卸载/重新安装,因为除非这是一个更大的项目的一部分,并且错误发生在其他地方,所以安装中的某些内容似乎是不合适的。