[Typescript] 102. Hard - String to Number

Convert a string literal to a number, which behaves like Number.parseInt.

 

/* _____________ Your Code Here _____________ */

type ToNumber<S extends string, ACC extends unknown[] = []> = S extends `${number}`
  ? S extends `${ACC['length']}`
    ? ACC['length']
    : ToNumber<S, [...ACC, unknown]>
  : never


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

type cases = [
  Expect<Equal<ToNumber<'0'>, 0>>,
  Expect<Equal<ToNumber<'5'>, 5>>,
  Expect<Equal<ToNumber<'12'>, 12>>,
  Expect<Equal<ToNumber<'27'>, 27>>,
  Expect<Equal<ToNumber<'18@7_$%'>, never>>,
]

 

posted @   Zhentiw  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2020-11-15 [Typescript Unit testing] Error Handling with Unknown
2020-11-15 [Typescript v3.9] ts-expect-error
2020-11-15 [Typescript v4.1] Template type literals
2020-11-15 [Typescript v4] Tuple Types && Recursive types
2016-11-15 [Docker] Build a Simple Node.js Web Server with Docker
2016-11-15 [AngularJS NG-redux] Integrate Redux Devtools
2015-11-15 [MongoDB] Introduce to MongoDB
点击右上角即可分享
微信分享提示