gpt4 book ai didi

angularjs - 如何将枚举分配给变量?

转载 作者:行者123 更新时间:2023-12-02 08:04:46 28 4
gpt4 key购买 nike

标题说明了一切:如何将 Enum 分配给局部变量,例如:

export enum MyEnum {
TOP = "top",
RIGHT = "right",
BOTTOM = "bottom",
LEFT = "left"
};

const myEnum: MyEnum = MyEnum; // <-Error: Type 'typeof MyEnum' is not assignable to type 'MyEnum'.

链接 here .

为了有人想知道我为什么要这样做:我想遍历 AngularJs 模板中的枚举值:

// component controller
export class MyClass {
public myEnum: MyEnum;

constructor() {
this.myEnum = MyEnum;
}
}

// component template
<ul>
<li ng-repeat="enum in $ctrl.myEnum">{{ enum }}</li>
</ul>

编辑

我知道我可以分配每个值,例如:

constructor() {
this.myEnum = {};
this.myEnum.TOP = MyEnum.TOP;
this.myEnum.RIGHT= MyEnum.RIGHT;
this.myEnum.BOTTOM= MyEnum.BOTTOM;
this.myEnum.LEFT= MyEnum.LEFT;
}

但这不是我想要的。不方便,很容易出错。

最佳答案

您可以使用 typeof MyEnum 来引用整个枚举命名空间的类型,而不是枚举成员的类型:

export class MyClass {
public myEnum: typeof MyEnum;

constructor() {
this.myEnum = MyEnum;
}
}

但是使用属性初始值设定项可能更容易,因此 TypeScript 将推断类型,而您根本不必使用类型注释:

export class MyClass {
public myEnum = MyEnum;
}

关于angularjs - 如何将枚举分配给变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52759056/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com