typescript - 这种检查两种类型是否属于同一类型的方法如何工作?
问题描述
类型Equal
定义如下
type Equal<X, Y> = (<T>() => T extends X ? 1 : 2)
extends <T>() => T extends Y ? 1 : 2
? true
: false;
我尝试编写如下代码:
type Foo<X> = <T>() => T extends X ? 1 : 2;
var a: Foo<number> = true;
var b: Foo<boolean> = true;
var c: Foo<any> = true;
var d: Foo<number> = 42;
var e: Foo<boolean> = 42;
var f: Foo<any> = 42;
var g: Foo<number> = () => true;
var h: Foo<boolean> = () => true;
var i: Foo<any> = () => true;
var j: Foo<number> = () => 42;
var k: Foo<boolean> = () => 42;
var l: Foo<any> = () => 42;
但没有一个是正确的
这是如何运作的?
解决方案
推荐阅读
- arrays - Iterate on array of JSON objects
- windows - 未捕获的错误:imagemagick npm 包中的命令超时
- javascript - Angular6 Form only responds after periodic zone.js change detection
- android - How to re-adjust views according to new configuration change?
- java - 使用带参数的 HQL 选择表行
- javascript - 为什么使用 Promise.catch() 而不是 Promise.then()
- ios - 快速:UIPageViewController 动作
- python-2.7 - Python 2.7 - Dropbox API V2。下载整个文件夹
- flutter - flutter - 在灵活空间中使用重叠内容滚动应用栏
- python - 为什么即使我保留了检查条件,列表索引也会超出范围?