To get the type of a variable you need to use the typeof
type operator:
const MY_CONSTANT = 'MY_CONSTANT' // must be const, no annotation. let or var will not work
const SOMETHING_ELSE = 'SOMETHING_ELSE' // must be const, no annotation. let or var will not work
type MyType = typeof MY_CONSTANT | typeof SOMETHING_ELSE
Note:
Since there seems to be a lot of confusion when people use this. The const
matters. If you use other types of declarations (let
or var
) the final type would be string. Only const
preserves string literal types.
Note 2:
For this solution to work you must not specify any type annotation on the const
, and let the compiler infer the type of the constants (ex this will not work :const MY_CONSTANT: string = 'MY_CONSTANT'
)