首页 > 解决方案 > 将静态值添加到打字稿中的枚举

问题描述

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

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

我想将链接的第一部分设为静态。

我试图创建一个静态变量

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

然后在我的 enums.ts 中调用它

在我的 enum.ts 我想要类似的东西:

Home = baselink + "Home.html"

但我无法访问该变量,而且我认为它不会起作用,因为我有一条消息说:

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

标签: typescriptenumsstatic-variables

解决方案


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

const _BASELINK = "/MyPage/Frontend"

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

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

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


推荐阅读