[Typescript] Partial autocompletion (string & {})
const presetSizes = {
xs: "0.5rem",
sm: "1rem",
};
type Size = keyof typeof presetSizes;
//type LooseSize = Size | string; // the result will be string
type LooseSize = Size | (string & {}); // working
export const Icon = (props: { size: LooseSize }) => {
return (
<div
style={{
width:
props.size in presetSizes
? presetSizes[
/**
* The 'as' is necessary here because TS can't seem to narrow
* props.size to Size properly
*/
props.size as Size
]
: props.size,
}}
/>
);
};
<>
<Icon size="sm"></Icon>
<Icon size="xs"></Icon>
<Icon size="10px"></Icon>
</>;
分类:
React
, TypeScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2022-08-04 [JUnit] Assumption and assertAll
2022-08-04 [Algorithm] Doubly Linked list construction
2021-08-04 [SAA + SAP] 19. Database & Redshfit
2021-08-04 [SAA + SAP] 18. Architecture Discussions - 1
2020-08-04 [AWS] Build an App with AWS CDK
2019-08-04 [React Native] Up & Running with React Native & TypeScript
2019-08-04 [React] Create a Query Parameter Modal Route with React Router