If I have an interface in typescript like so
interface MyInterface {
id: number;
image: string;
text: "one thing" | "another" | "anotherthing" | "anotherthing"
}
How can I factor out my type for text with the pipes so I can use it multiple times as a type in my program? It seems like it should be simple but I'm not sure what the syntax is
For clarity I would like to be able to use it like
factoredOutType = "one thing" | "another" | "anotherthing" | "anotherthing"
interface MyInterface1 {
id: number;
image: string;
text: factoredOutType
}
interface MyInterface2 {
name: factoredOutType
}
etc... I can't seem to find the syntax to this question so help is appreciated.
CodePudding user response:
I think you just need the type
keyword:
type factoredOutType = "one thing" | "another" | "anotherthing" | "anotherthing"
Not near a compiler now so can't really check but I think that works
CodePudding user response:
you can format string literal types using template literal if your types are related/dynamic. e.g.
type stringTypes = `${'hello' | 'world'}_id`;
const a: stringTypes = 'hello_id';