[Typescript] Inferring Literal Types from any Basic Type

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,
  };
};

 

posted @   Zhentiw  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2021-04-10 [AWS Developer Guru] CI/CD
2021-04-10 [AWS] Lab: CloudFormation nested stack
2020-04-10 [RxJS] Building an RxJS Operator
2020-04-10 [RxJS] Build an Event Combo Observable with RxJS (takeWhile, takeUntil, take, skip)
2018-04-10 [Tailwind] Style Elements on hover and focus with Tailwind’s State Variants
2018-04-10 [Tailwind] Apply mobile-first Responsive Classes in Tailwind
2018-04-10 [Tailwind] Create Custom Utility Classes in Tailwind
点击右上角即可分享
微信分享提示