【问题标题】:TypeScript nesting static propertiesTypeScript 嵌套静态属性
【发布时间】:2015-10-09 13:59:53
【问题描述】:

我正在尝试构建一个包含用于不同位置的常量值的类。

结构应该是这样的:

class JavascriptEvents {
    static change: string = "change";
    static click: string = "click";
    static blur: string = "blur";
    static inputChange: string = "input propertychange paste";
    static dblClick: string = "dblclick";
    static bootstrap: Object = {
        accordion: {
            show: "show.bs.collapse",
            shown: "shown.bs.collapse",
            hide: "hide.bs.collapse",
            hidden: "hidden.bs.collapse"
        },
        modal: {
            shown: "shown.bs.modal",
            show: "show.bs.modal",
            hide: "hide.bs.modal",
            hidden: "hidden.bs.modal",
            loaded: "loaded.bs.modal"
        }
    }
}

问题:bootstrap 部分应该如何嵌套,以便我可以引用如下事件:

$("someElement").on(JavascriptEvents.bootstrap.modal.shown, function(){
    // do whatever needed
});

【问题讨论】:

    标签: javascript static nested typescript


    【解决方案1】:

    我认为问题在于: Object 声明,它隐藏了调用站点的所有类型信息。如果您只是将其删除,类型检查器应该会再次感到高兴。

    例如:

    class JavascriptEvents {
        static bootstrap: Object = {
            modal: {
                shown: "shown.bs.modal",
            }
        }
        static bootstrap2 = {
            modal: {
                shown: "shown.bs.modal",
            }
        }
    }
    
    let jq: any;
    jq.on(JavascriptEvents.bootstrap.modal.shown); // Error
    jq.on(JavascriptEvents.bootstrap2.modal.shown); // Works
    

    Playground

    【讨论】:

      猜你喜欢
      • 2016-10-10
      • 2012-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多