[ (value, label) => { value: v-6ren">
gpt4 book ai didi

javascript - Typescript AngularJs CommonJs 常量

转载 作者:行者123 更新时间:2023-11-27 23:28:52 24 4
gpt4 key购买 nike

所以我有这样的场景,我选择要构建的过滤器对象。过滤器列表存储在数组中:

app.constant("filters", () => <IFilterList>[
(value, label) => <IFilterObject>{ value: value, label: label }
]);

interface IFilterList {
[index:number]: (value?:string, label?:string) => IFilterObject
}

interface IFilterObject {
value: string,
label: string
}

这允许设置正在使用的过滤器的模块:

// somemodule.js

app.controller("SomeController", (filters, filterService) => {
var filter = filters[0]("this value", "this label");

filterService.change(filter);
});

如您所见,使用魔数(Magic Number)进行 filters[0] 至少可以说很糟糕。

在 C# 中,我将创建一个公共(public)静态类,因此可以在任何地方使用。像这样的东西:

public static class FilterNames
{
public const int NameFilter = 0;
}

如何使用 CommonJs 模块系统在 AngularJs 和 TypeScript 中执行相同的操作?

在我看来,你需要全局变量......这真的是最好的方法吗?

最佳答案

您可以使用这些值创建一个枚举。

enum FilterType {
NAME,
AGE
}

Enum 默认获取数值,因此第一个获取值 0,第二个获取值 1,依此类推。

你可以像这样使用它:

filters[FilterType.NAME]("this value", "this label");

枚举可以位于另一个文件中,您可以将其导入到任何您想要使用的地方。您可以在 TypeScript here 中了解有关枚举的更多信息.

关于javascript - Typescript AngularJs CommonJs 常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34741285/

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