Search code examples
javascripttypescripttypesinterfacepipe

Typescript custom type


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.


Solution

  • 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