create type as values of list typescript code example
Example 1: typescript one of array
function stringLiterals<T extends string>(...args: T[]): T[] { return args; }
type ElementType<T extends ReadonlyArray<unknown>> = T extends ReadonlyArray<infer ElementType> ? ElementType : never;
const values = stringLiterals('A', 'B');
type Foo = ElementType<typeof values>;
const v1: Foo = 'A'
const v2: Foo = 'D'
Example 2: typescript object type
let endedCoord: {x: number, y: number} = {
x: -1,
y: -1,
}
Example 3: create type as values of list typescript
enum statuses {
SETUP,
STARTED,
FINISHED
}
type StatusString = keyof typeof statuses
export type JobStatus = {
status: StatusString
}