向打字稿中的枚举添加静态值

时间:2019-06-25 09:48:37

标签: typescript enums static-variables

我创建了一个包含以下链接的枚举:

enum Links {
  Home = "/MyPage/Frontend/Home.html",
  AboutUs = "/MyPage/Frontend/AboutUs.html",
}

我想使链接的第一部分静止。

我试图创建一个静态变量

public static baselink = "/MyPage/Frontend/";

,然后在我的枚举中将其命名。

在我的枚举中,我想要类似的东西:

Home = baselink + "Home.html"

但是我无法访问该变量,而且我也认为它不起作用,因为我收到一条消息,内容是:

  

在具有字符串值的枚举中,不允许计算值。

1 个答案:

答案 0 :(得分:0)

冻结的对象在功能上等同于TypeScript中的枚举(如果我错了,请纠正我)。因此,应该这样做:

const _BASELINK = "/MyPage/Frontend"

const Links = Object.freeze({
    Home: `${_BASELINK}/Home.html`,
    AboutUs: `${_BASELINK}/AboutUs.html`
})

Object.freeze()接受任何对象,并将其设置为 readonly 。我们不希望任何人修改“枚举”。

``是一种方便的语法,称为字符串模板,可用于在运行时格式化字符串。不需要它,但是我喜欢使用它。