Skip to content

IsExact fails with string enum item and string #17

@MikelArnaiz

Description

@MikelArnaiz

Hi,

I can't make IsExact work with enums.

const foo = 'Foo';
enum A {
  A1 = 'A1',
  A2 = 'A2',
}

export const t1 = [foo, ['A1']] as const;
export type T1 = typeof t1[number];

export type T2 = typeof foo | readonly [A.A1]

assert<IsExact<T1, T2>>(true);

In the example above

  • T1 is "Foo" | readonly ["A1"]
  • T2 is "Foo" | readonly [A.A1]

I presume the issue is that for the type system "A1" is not exact to A.A1

Edit.
Following your another option approach (that doesn't require this library), I can see the origin of the error, which is extremely helpful.

image

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions