Typescript 类型为'的参数;环境类型';不可分配给类型为';环境';
代码: 获取错误:Typescript 类型为'的参数;环境类型';不可分配给类型为';环境';,typescript,Typescript,代码: 获取错误: enum Environment { Production = 'production', Development = 'development', Test = 'test' } export class Config { public constructor(EnvProd: Environment = Environment.Production, EnvEnum = Environment) { Config.crea
enum Environment {
Production = 'production',
Development = 'development',
Test = 'test'
}
export class Config {
public constructor(EnvProd: Environment = Environment.Production, EnvEnum = Environment) {
Config.createConsoleLog(EnvProd, EnvEnum, console);
}
private static createConsoleLog(EnvProd: Environment, EnvEnum: Environment, console: Console): void {
console.log(EnvProd, EnvEnum);
}
}
我一直在试图弄清楚为什么我不能让它工作。目前,您正在将整个枚举对象发送到预期的枚举值处,因此出现了错误
如果要允许传递“枚举对象”,则签名应为:
karlm@karl-Dell-Precision-M3800:~/dev/sg$ npx ts-node application/libs/config/index.ts
⨯ Unable to compile TypeScript:
application/libs/config/index.ts:9:42 - error TS2345: Argument of type 'typeof Environment' is not assignable to parameter of type 'Environment'.
9 Config.createConsoleLog(EnvProd, EnvEnum, console);
~~~~~~~
注意
环境的类型
(枚举对象也是值)您想做什么?当前,您发送的是整个enum对象,其中包含预期的enum值,因此会出现错误如果出于任何原因希望允许传递“enum对象”,则签名应为createConsoleLog(EnvProd:Environment,EnvEnum:typeof Environment,console:console):void
@AlekseyL。啊,我明白了!发布一个答案,我将欣然接受!你能分享一下这个用例吗?(只是好奇)@AlekseyL。将一些内容重写为纯函数,因此所有内容都需要经过参数,还需要引入默认参数!仅此而已!目前还不太习惯打字。
private static createConsoleLog(EnvProd: Environment, EnvEnum: typeof Environment, console: Console): void