Lime logo洛明Lime
← 返回卡片墙幼苗速查表

Equal

easyEqual:

TS Playground - An online editor for exploring TypeScript and JavaScript

type Equal<X, Y> = (<G>() => G extends X ? 1 : 2) extends
(<G>() => G extends Y ? 1 : 2)
? true
: false
type r1 = Equal<{ a: 'A' }, { readonly a: 'A' }> // => false
type r2 = Equal<{ readonly a: 'A' }, { a: 'A' }> // => false
type EasyEqual<X, Y> = [X, Y] extends [Y, X] ? true : false
type r3 = EasyEqual<{ a: 'A' }, { readonly a: 'A' }> // => true
type r4 = EasyEqual<{ readonly a: 'A' }, { a: 'A' }> // => true

Documentation - Mapped Types

Documentation - More on Functions

Documentation - Template Literal Types