Open felixmosh opened 1 year ago
const portSchema = Joi.number().integer().greater(2999).positive().required(); const hostSchema = Joi.alternatives([Joi.string().ip(), Joi.string().domain().allow('localhost')]).required(); const envSchema = Joi.object({ NODE_ENV: Joi.string().valid('production', 'development', 'test').required(), PORT: portSchema.default(3000).optional(), SERVICE_HOST: hostSchema, REDIS_PORT: portSchema, REDIS_HOST: hostSchema, });
envSchema gets a type of Joi.ObjectSchema<any> instead of specific object,
Joi.ObjectSchema<any>
It should contain reflect the object type...
Maybe we can use the types from https://github.com/maghis/types-joi/blob/master/index.d.ts which do work
I've managed to change types to reflect object's keys by modifying this
object<TSchema = any, isStrict = false, T = TSchema>(schema?: SchemaMap<T, isStrict>): ObjectSchema<TSchema>;
into
object<TSchema = any, isStrict = false>(schema?: SchemaMap<TSchema, isStrict>): ObjectSchema<TSchema>;
But it sets unknown to each key.
unknown
Support plan
Context
What are you trying to achieve or the steps to reproduce?
What was the result you got?
envSchema gets a type of
Joi.ObjectSchema<any>
instead of specific object,What result did you expect?
It should contain reflect the object type...
Maybe we can use the types from https://github.com/maghis/types-joi/blob/master/index.d.ts which do work
I've managed to change types to reflect object's keys by modifying this
into
But it sets
unknown
to each key.