如何在TypeScript中注入枚举?
如何在TypeScript中注入枚举?这是可能的和推荐的吗 enums.ts:如何在TypeScript中注入枚举?,typescript,Typescript,如何在TypeScript中注入枚举?这是可能的和推荐的吗 enums.ts: export enum Environment { Development = 'Development', Production = 'Production', Test = 'Test' } 文件: 我得到: application/libs/config/index.ts:23:18 - error TS2749: 'Environment' refers to a value, bu
export enum Environment {
Development = 'Development',
Production = 'Production',
Test = 'Test'
}
文件:
我得到:
application/libs/config/index.ts:23:18 - error TS2749: 'Environment' refers to a value, but is being used as a type here.
23 Environment: Environment = _Environment
这个很好用
function myfunc(Environment: _Environment): void {}
但是,如果您想使用默认参数,可以尝试以下方法
function myfunc(Environment: _Environment = _Environment.Development): void {}
是一种联合/变体类型。这意味着它定义了一组可能的值,但本身不是一个值。您的函数有一个类型为Environment
的参数,这意味着您可以指定枚举Environment
中存在的一个可能值,但不能像您尝试的那样枚举本身,因为Environment
本身不是一个值,而是一个类型
function myfunc(Environment: Environment = _Environment.Production ): void {}
如您所见,我正在从枚举中的可能值中任意选择一个
您可以查看带有静态结构表示的联合上的枚举。这意味着:
type T = 'a' | 'b';
enum TEnum {
a = 'a'
b = 'b'
}
// using
const a: T = 'a' // direct setting the value
const b: TEnum = TEnum.b // using existing enum structure to set the value
你会这样做的。正在开发的默认环境
export enum Environment {
Development = 'Development',
Production = 'Production',
Test = 'Test'
}
function myfunc(e: Environment = Environment.Development): void {}
什么是
环境
类型?您已经键入了函数的参数,其类型为Environment
。这是一种类型吗?关于:env:typeof Environment=\u Environment
?请看:@c_ogo啊,这样我就可以定义枚举可以使用的类型了?不清楚你在问什么。如果您想用默认值定义Environment
类型的参数,它将是函数myfunc(Environment:Environment=Environment.Development):void{}
。无需将别名(定义为_Environment
)我正在尝试使用javascriptAh中的默认参数。这是有道理的。你知道怎样用枚举创建一个纯函数吗?嗨,卡尔。我不完全明白你的问题。枚举是常量,如果在函数中使用它,它仍然是纯的。它具有环境依赖性,但在此环境中仍然是引用透明的。可以在任何纯函数中随意使用枚举。
export enum Environment {
Development = 'Development',
Production = 'Production',
Test = 'Test'
}
function myfunc(e: Environment = Environment.Development): void {}