zl程序教程

您现在的位置是:首页 >  前端

当前栏目

[Typescript] 85. Medium - IsInteger

typescript Medium 85
2023-09-14 09:00:44 时间

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>>,
]