[Typescript] 152 Medium - IsOdd

return true is a number is odd

/* _____________ Your Code Here _____________ */

type LastChar<T extends string> =  T extends `${infer First}${infer Rest}` 
    ? Rest extends ""
      ? First
      : LastChar<Rest>
    : never;
type IsOdd<T extends number> = `${T}` extends `${infer _}.${infer __}` 
  ? false 
  :`${T}` extends `${infer _}e${infer __}` 
    ? false
    : LastChar<`${T}`> extends '1' | '3' | '5' | '7' | '9' 
      ? true 
      : false; 

/* _____________ Test Cases _____________ */
import type { Equal, Expect } from '@type-challenges/utils'

type cases = [
  Expect<Equal<IsOdd<5>, true>>,
  Expect<Equal<IsOdd<2023>, true>>,
  Expect<Equal<IsOdd<1453>, true>>,
  Expect<Equal<IsOdd<1926>, false>>,
  Expect<Equal<IsOdd<2.3>, false>>,
  Expect<Equal<IsOdd<3e23>, false>>,
  Expect<Equal<IsOdd<number>, false>>,
]

 

posted @   Zhentiw  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2023-05-15 [Rust] Collect()
2019-05-15 [Functional Programming] Week logic
2018-05-15 [Javascript] Getter and Setter Abstractions
2017-05-15 [Recompose] Flatten a Prop using Recompose
2017-05-15 [Recompose] Lock Props using Recompose -- withProps
2017-05-15 [Recompose] Transform Props using Recompose --mapProps
2017-05-15 [Recompose] Add Lifecycle Hooks to a Functional Stateless Component using Recompose
点击右上角即可分享
微信分享提示