Home > Enterprise >  Typescript custom type
Typescript custom type

Time:08-27

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'; 
  • Related