[Typescript] Inferring Literal Types from any Basic Type

发布时间 2023-04-10 21:38:58作者: Zhentiw
export const inferItemLiteral = <T>(t: T) => {
  return {
    output: t,
  };
};

const result1 = inferItemLiteral("a");
//     ? {output: string}

/* vs */

export const inferItemLiteral = <T extends string>(t: T) => {
  return {
    output: t,
  };
};

const result1 = inferItemLiteral("a");
//     ? {output: "a"}

 

So , what about if function can accpet number as input:

const result2 = inferItemLiteral(123);

 

We can do:

export const inferItemLiteral = <T extends string | number>(t: T) => {
  return {
    output: t,
  };
};