【问题标题】:Can you access local static variables within local method in TypeScript?你可以在 TypeScript 的本地方法中访问本地静态变量吗?
【发布时间】:2013-03-24 21:02:58
【问题描述】:

假设我有一个像下面这样的课程:

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;
        })();     

这看起来合法,所以也许它正在工作并且只是在抱怨......

【问题讨论】:

  • 检查生成的代码的样子可能会很清楚。

标签: javascript static typescript


【解决方案1】:

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

【讨论】:

  • 好吧,我会这样做,是的,0.8.3 是我使用的版本。它也在我实际代码的一个模块中,这会导致问题吗?
  • 添加 public 仍然给我同样的问题:(
【解决方案2】:

将该代码粘贴到 Playground (http://www.typescriptlang.org/playground) 对我来说没有显示任何错误或警告,而且它运行的 0.8.3 位与 MSI 相同。如果您仅看到此代码出现错误,我将卸载/重新安装,因为除非这是更大项目的一部分并且错误发生在其他地方,否则安装中的某些内容似乎不正常。

【讨论】:

  • 我的编译器似乎遇到了一些 strange 错误。只会假设没有问题并给原始回答者打勾。
猜你喜欢
  • 1970-01-01
  • 2016-11-10
  • 1970-01-01
  • 2012-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多