实现一个类型安全的小型断言库is

实现一个类型安全的小型断言库is

实现一个类型安全的小型断言库is。先草拟类型。实现之后,可以像下面这样使用:

// 字符串与字符串比较
is('string', 'number') // false

// 布尔与布尔
is(true, false) // false

// 数字
is(45, 45) // true

// 比较两个不同的类型的值应该抛出编译时错误

is(10, 'f00') // Error Argument of type '"foo"' is not assignable to paramter of tye 'number'

// (有难度) 可以传入任意个参数
is([1], [1,2], [1,2,3])

function is<T>(a: T, ...b: [T, ...T[]]): boolean {

return b.every(_ => _ === a)

}

function is<T>(a: T, ...b: T[]){

return b.every(_ => _ === a)

}

这不一样吗

以上是 实现一个类型安全的小型断言库is 的全部内容, 来源链接: utcz.com/p/936386.html

回到顶部