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