Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript TypeScript:使用枚举元素而不指定枚举名称_Javascript_Typescript_Import_Enums - Fatal编程技术网

Javascript TypeScript:使用枚举元素而不指定枚举名称

Javascript TypeScript:使用枚举元素而不指定枚举名称,javascript,typescript,import,enums,Javascript,Typescript,Import,Enums,我有一个枚举,我想在几个地方使用它。 让我们这样说enum: export enum MyEnum { MY_VALUE, MY_SECOND_VALUE } 每次使用它时,我都必须在值前面指定枚举名称,例如: MyEnum.MY_VALUE Q:是否可以以不需要指定名称的方式导入枚举 我想直接使用该值: MY_VALUE 在java世界中,它被称为静态导入。但我还没有找到像那样的打字稿 我的TypeScript版本是2.5.3。TypeScript中没有用于静态导入的语法

我有一个枚举,我想在几个地方使用它。 让我们这样说enum:

export enum MyEnum {
    MY_VALUE,
    MY_SECOND_VALUE
}
每次使用它时,我都必须在值前面指定枚举名称,例如:

MyEnum.MY_VALUE
Q:是否可以以不需要指定名称的方式导入枚举

我想直接使用该值:

MY_VALUE
在java世界中,它被称为静态导入。但我还没有找到像那样的打字稿


我的TypeScript版本是2.5.3。

TypeScript中没有用于静态导入的语法

您可以将值成员指定给常量,并使用该常量:

const  MY_VALUE = MyEnum.MY_VALUE;
如果在导出模块中将枚举值定义为常量,则可以在需要使用它们的任何其他位置轻松导入值:

// enumModule .ts
export  enum MyEnum {
    MY_VALUE,
    MY_SECOND_VALUE
}

export const  MY_VALUE = MyEnum.MY_VALUE;
export const  MY_SECOND_VALUE = MyEnum.MY_SECOND_VALUE;

// Other file.ts
import { MY_SECOND_VALUE, MY_VALUE } from './enumModule'

非常感谢。它起作用了。在TypeScript世界中实现这样的东西是一种好的实践吗?老实说,它看起来有点难看。如果我像这样声明常量,使用enum有什么意义?我可以只声明字符串常量。据我所知,这是一种不错的做法,尽管我还没有看到它被广泛使用。TS/JS中导入工作方式的优点是,导入程序明确说明了导入的内容,因此不会产生不必要的冲突。使用枚举的优点是,您可以将函数输入仅限于该枚举,而不必指定所有常量类型:
function c(p:MyEnum){}
vs
function c2(p:typeof MY_VALUE | typeof MY_SECOND_VALUE){}