[Typescript] 85. Medium - IsInteger

Please complete type IsInteger<T>, type T inherits from number, if T is an integer return it, otherwise return never.

/* _____________ Your Code Here _____________ */

type IsInteger<T> = `${T & number}` extends `${number}.${number}` 
  ? never
  : number extends T
    ? never
    : T;

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

let x = 1
let y = 1 as const

type cases1 = [
  Expect<Equal<IsInteger<1>, 1>>,
  Expect<Equal<IsInteger<1.1>, never>>,
  Expect<Equal<IsInteger<1.0>, 1>>,
  Expect<Equal<IsInteger<typeof x>, never>>,
  Expect<Equal<IsInteger<typeof y>, 1>>,
]

 

posted @ 2022-11-01 16:20  Zhentiw  阅读(13)  评论(0编辑  收藏  举报