I have some const like this
export class CustomerType {
static readonly main = 'mainCustomer';
static readonly additional = 'additionalCustomer';
}
And I have
const value = 'main'
Is it possible to check does value exist in CustomerType and return true or false? I know that I can use include when is an array but this is class?
CodePudding user response:
You can use Object.keys() to get all properties on the class and then use Array.prototype.includes() to see if it is contained:
class CustomerType {
static readonly main = 'mainCustomer';
static readonly additional = 'additionalCustomer';
}
const value = 'main'
console.log(Object.keys(CustomerType).includes(value))
You can see this working in the typescript playground.
CodePudding user response:
type valueType = keyof typeof CustomerType
const value: valueType = 'main'; // no error
const value2: valueType = 'something else'; // throws typescript error
See an example in the typescript playground here.
