Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

branding.ts and messages.ts #95

Merged
merged 2 commits into from
Aug 11, 2024
Merged

branding.ts and messages.ts #95

merged 2 commits into from
Aug 11, 2024

Conversation

mmkal
Copy link
Owner

@mmkal mmkal commented Aug 9, 2024

Another intermediate PR in support of #83

Moves DeepBrand to its own file, because in #83 I want to start using imports from overloads.ts in it. This would be a circular reference, which TypeScript can actually handle, but I would still like to avoid to prevent confusion.

Similarly I had to create another file messages.ts since we have a few type-error aiding utilities that are currently in utils.ts, but that rely on DeepBrand.

This tends to be the kind of file-proliferation that I worry about when breaking up a mega-file! But in this case I think it's warranted.

@aryaemami59 what do you think re naming/ the new structure?

src/utils.ts Show resolved Hide resolved
src/utils.ts Show resolved Hide resolved
@aryaemami59
Copy link
Collaborator

Only minor issue I might have is instead of brand.ts maybe it can be called branding.ts or maybe branded-types.ts other than that LGTM.

@mmkal mmkal changed the title brand.ts and messages.ts branding.ts and messages.ts Aug 11, 2024
Copy link

pkg-pr-new bot commented Aug 11, 2024

commit: 1b50788

pnpm add https://pkg.pr.new/mmkal/expect-type@95

Open in Stackblitz

@mmkal mmkal merged commit 2108a4c into main Aug 11, 2024
23 checks passed
@mmkal mmkal deleted the brand.ts branch August 11, 2024 17:07
renovate bot added a commit to mmkal/trpc-cli that referenced this pull request Aug 20, 2024
##### [`v0.20.0](https://github.com/mmkal/expect-type/releases/tag/v0.20.0)

#### Breaking changes

-   improve overloads support, attempt 2 by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#83

This change updates how overloaded functions are treated. Now, `.parameters` gives you a *union* of the parameter-tuples that a function can take. For example, given the following type:

```ts
type Factorize = {
  (input: number): number[]
  (input: bigint): bigint[]
}
```

Behvaiour before:

```ts
expectTypeOf<Factorize>().parameters.toEqualTypeOf<[bigint]>()
```

Behaviour now:

```ts
expectTypeOf<Factorize>().parameters.toEqualTypeOf<[number] | [bigint]>()
```

There were similar changes for `.returns`, `.parameter(...)`, and `.toBeCallableWith`. Also, overloaded functions are now differentiated properly when using `.branded.toEqualTypeOf` (this was a bug that it seems nobody found).

See [#83](mmkal/expect-type#83) for more details or look at the updated docs (including a new section called "[Overloaded functions](https://github.com/mmkal/expect-type#overloaded-functions)", which has more info on how this behaviour differs for TypeScript versions before 5.3).

#### What's Changed

-   Fix rendering issue in readme by [@mrazauskas](https://github.com/mrazauskas) in mmkal/expect-type#69
-   Fix minor issues in docs by [@aryaemami59](https://github.com/aryaemami59) in mmkal/expect-type#91
-   create utils file by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#93
-   branding.ts and messages.ts by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#95
-   improve overloads support, attempt 2 by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#83
-   Extends: explain myself  [`1e37116`](mmkal/expect-type@1e37116)
-   Mark internal APIs with `@internal` JSDoc tag ([#104](mmkal/expect-type#104))  [`4c40b07`](mmkal/expect-type@4c40b07)
-   Re-export everything in `overloads.ts` file ([#107](mmkal/expect-type#107))  [`5ee0181`](mmkal/expect-type@5ee0181)
-   JSDoc improvements ([#100](mmkal/expect-type#100))  [`0bbeffa`](mmkal/expect-type@0bbeffa)

**Full Changelog**: mmkal/expect-type@v0.19.0...v0.20.0
renovate bot added a commit to mmkal/trpc-cli that referenced this pull request Aug 20, 2024
##### [`v0.20.0](https://github.com/mmkal/expect-type/releases/tag/v0.20.0)

#### Breaking changes

-   improve overloads support, attempt 2 by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#83

This change updates how overloaded functions are treated. Now, `.parameters` gives you a *union* of the parameter-tuples that a function can take. For example, given the following type:

```ts
type Factorize = {
  (input: number): number[]
  (input: bigint): bigint[]
}
```

Behvaiour before:

```ts
expectTypeOf<Factorize>().parameters.toEqualTypeOf<[bigint]>()
```

Behaviour now:

```ts
expectTypeOf<Factorize>().parameters.toEqualTypeOf<[number] | [bigint]>()
```

There were similar changes for `.returns`, `.parameter(...)`, and `.toBeCallableWith`. Also, overloaded functions are now differentiated properly when using `.branded.toEqualTypeOf` (this was a bug that it seems nobody found).

See [#83](mmkal/expect-type#83) for more details or look at the updated docs (including a new section called "[Overloaded functions](https://github.com/mmkal/expect-type#overloaded-functions)", which has more info on how this behaviour differs for TypeScript versions before 5.3).

#### What's Changed

-   Fix rendering issue in readme by [@mrazauskas](https://github.com/mrazauskas) in mmkal/expect-type#69
-   Fix minor issues in docs by [@aryaemami59](https://github.com/aryaemami59) in mmkal/expect-type#91
-   create utils file by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#93
-   branding.ts and messages.ts by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#95
-   improve overloads support, attempt 2 by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#83
-   Extends: explain myself  [`1e37116`](mmkal/expect-type@1e37116)
-   Mark internal APIs with `@internal` JSDoc tag ([#104](mmkal/expect-type#104))  [`4c40b07`](mmkal/expect-type@4c40b07)
-   Re-export everything in `overloads.ts` file ([#107](mmkal/expect-type#107))  [`5ee0181`](mmkal/expect-type@5ee0181)
-   JSDoc improvements ([#100](mmkal/expect-type#100))  [`0bbeffa`](mmkal/expect-type@0bbeffa)

**Full Changelog**: mmkal/expect-type@v0.19.0...v0.20.0
kodiakhq bot referenced this pull request in X-oss-byte/Nextjs Aug 20, 2024
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [expect-type](https://github.com/mmkal/expect-type) | [`0.19.0` -> `0.20.0`](https://renovatebot.com/diffs/npm/expect-type/0.19.0/0.20.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/expect-type/0.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/expect-type/0.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/expect-type/0.19.0/0.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/expect-type/0.19.0/0.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>mmkal/expect-type (expect-type)</summary>

### [`v0.20.0`](https://github.com/mmkal/expect-type/releases/tag/v0.20.0)

[Compare Source](https://github.com/mmkal/expect-type/compare/0.19.0...v0.20.0)

#### Breaking changes

-   improve overloads support, attempt 2 by [@&#8203;mmkal](https://github.com/mmkal) in [https://github.com/mmkal/expect-type/pull/83](https://github.com/mmkal/expect-type/pull/83)

This change updates how overloaded functions are treated. Now, `.parameters` gives you a *union* of the parameter-tuples that a function can take. For example, given the following type:

```ts
type Factorize = {
  (input: number): number[]
  (input: bigint): bigint[]
}
```

Behvaiour before:

```ts
expectTypeOf<Factorize>().parameters.toEqualTypeOf<[bigint]>()
```

Behaviour now:

```ts
expectTypeOf<Factorize>().parameters.toEqualTypeOf<[number] | [bigint]>()
```

There were similar changes for `.returns`, `.parameter(...)`, and `.toBeCallableWith`. Also, overloaded functions are now differentiated properly when using `.branded.toEqualTypeOf` (this was a bug that it seems nobody found).

See [#&#8203;83](https://github.com/mmkal/expect-type/issues/83) for more details or look at the updated docs (including a new section called "[Overloaded functions](https://github.com/mmkal/expect-type#overloaded-functions)", which has more info on how this behaviour differs for TypeScript versions before 5.3).

#### What's Changed

-   Fix rendering issue in readme by [@&#8203;mrazauskas](https://github.com/mrazauskas) in [https://github.com/mmkal/expect-type/pull/69](https://github.com/mmkal/expect-type/pull/69)
-   Fix minor issues in docs by [@&#8203;aryaemami59](https://github.com/aryaemami59) in [https://github.com/mmkal/expect-type/pull/91](https://github.com/mmkal/expect-type/pull/91)
-   create utils file by [@&#8203;mmkal](https://github.com/mmkal) in [https://github.com/mmkal/expect-type/pull/93](https://github.com/mmkal/expect-type/pull/93)
-   branding.ts and messages.ts by [@&#8203;mmkal](https://github.com/mmkal) in [https://github.com/mmkal/expect-type/pull/95](https://github.com/mmkal/expect-type/pull/95)
-   improve overloads support, attempt 2 by [@&#8203;mmkal](https://github.com/mmkal) in [https://github.com/mmkal/expect-type/pull/83](https://github.com/mmkal/expect-type/pull/83)
-   Extends: explain myself  [`1e37116`](https://github.com/mmkal/expect-type/commit/1e37116)
-   Mark internal APIs with `@internal` JSDoc tag ([#&#8203;104](https://github.com/mmkal/expect-type/issues/104))  [`4c40b07`](https://github.com/mmkal/expect-type/commit/4c40b07)
-   Re-export everything in `overloads.ts` file ([#&#8203;107](https://github.com/mmkal/expect-type/issues/107))  [`5ee0181`](https://github.com/mmkal/expect-type/commit/5ee0181)
-   JSDoc improvements ([#&#8203;100](https://github.com/mmkal/expect-type/issues/100))  [`0bbeffa`](https://github.com/mmkal/expect-type/commit/0bbeffa)

**Full Changelog**: mmkal/expect-type@v0.19.0...v0.20.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] If you want to rebase/retry this PR, check this box

---

This PR was generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View the [repository job log](https://developer.mend.io/github/X-oss-byte/Nextjs).
renovate bot added a commit to mmkal/trpc-cli that referenced this pull request Aug 21, 2024
##### [`v0.20.0](https://github.com/mmkal/expect-type/releases/tag/v0.20.0)

#### Breaking changes

-   improve overloads support, attempt 2 by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#83

This change updates how overloaded functions are treated. Now, `.parameters` gives you a *union* of the parameter-tuples that a function can take. For example, given the following type:

```ts
type Factorize = {
  (input: number): number[]
  (input: bigint): bigint[]
}
```

Behvaiour before:

```ts
expectTypeOf<Factorize>().parameters.toEqualTypeOf<[bigint]>()
```

Behaviour now:

```ts
expectTypeOf<Factorize>().parameters.toEqualTypeOf<[number] | [bigint]>()
```

There were similar changes for `.returns`, `.parameter(...)`, and `.toBeCallableWith`. Also, overloaded functions are now differentiated properly when using `.branded.toEqualTypeOf` (this was a bug that it seems nobody found).

See [#83](mmkal/expect-type#83) for more details or look at the updated docs (including a new section called "[Overloaded functions](https://github.com/mmkal/expect-type#overloaded-functions)", which has more info on how this behaviour differs for TypeScript versions before 5.3).

#### What's Changed

-   Fix rendering issue in readme by [@mrazauskas](https://github.com/mrazauskas) in mmkal/expect-type#69
-   Fix minor issues in docs by [@aryaemami59](https://github.com/aryaemami59) in mmkal/expect-type#91
-   create utils file by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#93
-   branding.ts and messages.ts by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#95
-   improve overloads support, attempt 2 by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#83
-   Extends: explain myself  [`1e37116`](mmkal/expect-type@1e37116)
-   Mark internal APIs with `@internal` JSDoc tag ([#104](mmkal/expect-type#104))  [`4c40b07`](mmkal/expect-type@4c40b07)
-   Re-export everything in `overloads.ts` file ([#107](mmkal/expect-type#107))  [`5ee0181`](mmkal/expect-type@5ee0181)
-   JSDoc improvements ([#100](mmkal/expect-type#100))  [`0bbeffa`](mmkal/expect-type@0bbeffa)

**Full Changelog**: mmkal/expect-type@v0.19.0...v0.20.0
renovate bot added a commit to mmkal/trpc-cli that referenced this pull request Aug 21, 2024
##### [`v0.20.0](https://github.com/mmkal/expect-type/releases/tag/v0.20.0)

#### Breaking changes

-   improve overloads support, attempt 2 by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#83

This change updates how overloaded functions are treated. Now, `.parameters` gives you a *union* of the parameter-tuples that a function can take. For example, given the following type:

```ts
type Factorize = {
  (input: number): number[]
  (input: bigint): bigint[]
}
```

Behvaiour before:

```ts
expectTypeOf<Factorize>().parameters.toEqualTypeOf<[bigint]>()
```

Behaviour now:

```ts
expectTypeOf<Factorize>().parameters.toEqualTypeOf<[number] | [bigint]>()
```

There were similar changes for `.returns`, `.parameter(...)`, and `.toBeCallableWith`. Also, overloaded functions are now differentiated properly when using `.branded.toEqualTypeOf` (this was a bug that it seems nobody found).

See [#83](mmkal/expect-type#83) for more details or look at the updated docs (including a new section called "[Overloaded functions](https://github.com/mmkal/expect-type#overloaded-functions)", which has more info on how this behaviour differs for TypeScript versions before 5.3).

#### What's Changed

-   Fix rendering issue in readme by [@mrazauskas](https://github.com/mrazauskas) in mmkal/expect-type#69
-   Fix minor issues in docs by [@aryaemami59](https://github.com/aryaemami59) in mmkal/expect-type#91
-   create utils file by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#93
-   branding.ts and messages.ts by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#95
-   improve overloads support, attempt 2 by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#83
-   Extends: explain myself  [`1e37116`](mmkal/expect-type@1e37116)
-   Mark internal APIs with `@internal` JSDoc tag ([#104](mmkal/expect-type#104))  [`4c40b07`](mmkal/expect-type@4c40b07)
-   Re-export everything in `overloads.ts` file ([#107](mmkal/expect-type#107))  [`5ee0181`](mmkal/expect-type@5ee0181)
-   JSDoc improvements ([#100](mmkal/expect-type#100))  [`0bbeffa`](mmkal/expect-type@0bbeffa)

**Full Changelog**: mmkal/expect-type@v0.19.0...v0.20.0
renovate bot added a commit to mmkal/trpc-cli that referenced this pull request Aug 21, 2024
##### [`v0.20.0](https://github.com/mmkal/expect-type/releases/tag/v0.20.0)

#### Breaking changes

-   improve overloads support, attempt 2 by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#83

This change updates how overloaded functions are treated. Now, `.parameters` gives you a *union* of the parameter-tuples that a function can take. For example, given the following type:

```ts
type Factorize = {
  (input: number): number[]
  (input: bigint): bigint[]
}
```

Behvaiour before:

```ts
expectTypeOf<Factorize>().parameters.toEqualTypeOf<[bigint]>()
```

Behaviour now:

```ts
expectTypeOf<Factorize>().parameters.toEqualTypeOf<[number] | [bigint]>()
```

There were similar changes for `.returns`, `.parameter(...)`, and `.toBeCallableWith`. Also, overloaded functions are now differentiated properly when using `.branded.toEqualTypeOf` (this was a bug that it seems nobody found).

See [#83](mmkal/expect-type#83) for more details or look at the updated docs (including a new section called "[Overloaded functions](https://github.com/mmkal/expect-type#overloaded-functions)", which has more info on how this behaviour differs for TypeScript versions before 5.3).

#### What's Changed

-   Fix rendering issue in readme by [@mrazauskas](https://github.com/mrazauskas) in mmkal/expect-type#69
-   Fix minor issues in docs by [@aryaemami59](https://github.com/aryaemami59) in mmkal/expect-type#91
-   create utils file by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#93
-   branding.ts and messages.ts by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#95
-   improve overloads support, attempt 2 by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#83
-   Extends: explain myself  [`1e37116`](mmkal/expect-type@1e37116)
-   Mark internal APIs with `@internal` JSDoc tag ([#104](mmkal/expect-type#104))  [`4c40b07`](mmkal/expect-type@4c40b07)
-   Re-export everything in `overloads.ts` file ([#107](mmkal/expect-type#107))  [`5ee0181`](mmkal/expect-type@5ee0181)
-   JSDoc improvements ([#100](mmkal/expect-type#100))  [`0bbeffa`](mmkal/expect-type@0bbeffa)

**Full Changelog**: mmkal/expect-type@v0.19.0...v0.20.0
renovate bot added a commit to mmkal/trpc-cli that referenced this pull request Aug 21, 2024
##### [`v0.20.0](https://github.com/mmkal/expect-type/releases/tag/v0.20.0)

#### Breaking changes

-   improve overloads support, attempt 2 by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#83

This change updates how overloaded functions are treated. Now, `.parameters` gives you a *union* of the parameter-tuples that a function can take. For example, given the following type:

```ts
type Factorize = {
  (input: number): number[]
  (input: bigint): bigint[]
}
```

Behvaiour before:

```ts
expectTypeOf<Factorize>().parameters.toEqualTypeOf<[bigint]>()
```

Behaviour now:

```ts
expectTypeOf<Factorize>().parameters.toEqualTypeOf<[number] | [bigint]>()
```

There were similar changes for `.returns`, `.parameter(...)`, and `.toBeCallableWith`. Also, overloaded functions are now differentiated properly when using `.branded.toEqualTypeOf` (this was a bug that it seems nobody found).

See [#83](mmkal/expect-type#83) for more details or look at the updated docs (including a new section called "[Overloaded functions](https://github.com/mmkal/expect-type#overloaded-functions)", which has more info on how this behaviour differs for TypeScript versions before 5.3).

#### What's Changed

-   Fix rendering issue in readme by [@mrazauskas](https://github.com/mrazauskas) in mmkal/expect-type#69
-   Fix minor issues in docs by [@aryaemami59](https://github.com/aryaemami59) in mmkal/expect-type#91
-   create utils file by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#93
-   branding.ts and messages.ts by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#95
-   improve overloads support, attempt 2 by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#83
-   Extends: explain myself  [`1e37116`](mmkal/expect-type@1e37116)
-   Mark internal APIs with `@internal` JSDoc tag ([#104](mmkal/expect-type#104))  [`4c40b07`](mmkal/expect-type@4c40b07)
-   Re-export everything in `overloads.ts` file ([#107](mmkal/expect-type#107))  [`5ee0181`](mmkal/expect-type@5ee0181)
-   JSDoc improvements ([#100](mmkal/expect-type#100))  [`0bbeffa`](mmkal/expect-type@0bbeffa)

**Full Changelog**: mmkal/expect-type@v0.19.0...v0.20.0
renovate bot added a commit to mmkal/trpc-cli that referenced this pull request Aug 21, 2024
##### [`v0.20.0](https://github.com/mmkal/expect-type/releases/tag/v0.20.0)

#### Breaking changes

-   improve overloads support, attempt 2 by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#83

This change updates how overloaded functions are treated. Now, `.parameters` gives you a *union* of the parameter-tuples that a function can take. For example, given the following type:

```ts
type Factorize = {
  (input: number): number[]
  (input: bigint): bigint[]
}
```

Behvaiour before:

```ts
expectTypeOf<Factorize>().parameters.toEqualTypeOf<[bigint]>()
```

Behaviour now:

```ts
expectTypeOf<Factorize>().parameters.toEqualTypeOf<[number] | [bigint]>()
```

There were similar changes for `.returns`, `.parameter(...)`, and `.toBeCallableWith`. Also, overloaded functions are now differentiated properly when using `.branded.toEqualTypeOf` (this was a bug that it seems nobody found).

See [#83](mmkal/expect-type#83) for more details or look at the updated docs (including a new section called "[Overloaded functions](https://github.com/mmkal/expect-type#overloaded-functions)", which has more info on how this behaviour differs for TypeScript versions before 5.3).

#### What's Changed

-   Fix rendering issue in readme by [@mrazauskas](https://github.com/mrazauskas) in mmkal/expect-type#69
-   Fix minor issues in docs by [@aryaemami59](https://github.com/aryaemami59) in mmkal/expect-type#91
-   create utils file by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#93
-   branding.ts and messages.ts by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#95
-   improve overloads support, attempt 2 by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#83
-   Extends: explain myself  [`1e37116`](mmkal/expect-type@1e37116)
-   Mark internal APIs with `@internal` JSDoc tag ([#104](mmkal/expect-type#104))  [`4c40b07`](mmkal/expect-type@4c40b07)
-   Re-export everything in `overloads.ts` file ([#107](mmkal/expect-type#107))  [`5ee0181`](mmkal/expect-type@5ee0181)
-   JSDoc improvements ([#100](mmkal/expect-type#100))  [`0bbeffa`](mmkal/expect-type@0bbeffa)

**Full Changelog**: mmkal/expect-type@v0.19.0...v0.20.0
renovate bot added a commit to mmkal/trpc-cli that referenced this pull request Aug 21, 2024
##### [`v0.20.0](https://github.com/mmkal/expect-type/releases/tag/v0.20.0)

#### Breaking changes

-   improve overloads support, attempt 2 by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#83

This change updates how overloaded functions are treated. Now, `.parameters` gives you a *union* of the parameter-tuples that a function can take. For example, given the following type:

```ts
type Factorize = {
  (input: number): number[]
  (input: bigint): bigint[]
}
```

Behvaiour before:

```ts
expectTypeOf<Factorize>().parameters.toEqualTypeOf<[bigint]>()
```

Behaviour now:

```ts
expectTypeOf<Factorize>().parameters.toEqualTypeOf<[number] | [bigint]>()
```

There were similar changes for `.returns`, `.parameter(...)`, and `.toBeCallableWith`. Also, overloaded functions are now differentiated properly when using `.branded.toEqualTypeOf` (this was a bug that it seems nobody found).

See [#83](mmkal/expect-type#83) for more details or look at the updated docs (including a new section called "[Overloaded functions](https://github.com/mmkal/expect-type#overloaded-functions)", which has more info on how this behaviour differs for TypeScript versions before 5.3).

#### What's Changed

-   Fix rendering issue in readme by [@mrazauskas](https://github.com/mrazauskas) in mmkal/expect-type#69
-   Fix minor issues in docs by [@aryaemami59](https://github.com/aryaemami59) in mmkal/expect-type#91
-   create utils file by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#93
-   branding.ts and messages.ts by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#95
-   improve overloads support, attempt 2 by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#83
-   Extends: explain myself  [`1e37116`](mmkal/expect-type@1e37116)
-   Mark internal APIs with `@internal` JSDoc tag ([#104](mmkal/expect-type#104))  [`4c40b07`](mmkal/expect-type@4c40b07)
-   Re-export everything in `overloads.ts` file ([#107](mmkal/expect-type#107))  [`5ee0181`](mmkal/expect-type@5ee0181)
-   JSDoc improvements ([#100](mmkal/expect-type#100))  [`0bbeffa`](mmkal/expect-type@0bbeffa)

**Full Changelog**: mmkal/expect-type@v0.19.0...v0.20.0
renovate bot added a commit to mmkal/trpc-cli that referenced this pull request Aug 22, 2024
##### [`v0.20.0](https://github.com/mmkal/expect-type/releases/tag/v0.20.0)

#### Breaking changes

-   improve overloads support, attempt 2 by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#83

This change updates how overloaded functions are treated. Now, `.parameters` gives you a *union* of the parameter-tuples that a function can take. For example, given the following type:

```ts
type Factorize = {
  (input: number): number[]
  (input: bigint): bigint[]
}
```

Behvaiour before:

```ts
expectTypeOf<Factorize>().parameters.toEqualTypeOf<[bigint]>()
```

Behaviour now:

```ts
expectTypeOf<Factorize>().parameters.toEqualTypeOf<[number] | [bigint]>()
```

There were similar changes for `.returns`, `.parameter(...)`, and `.toBeCallableWith`. Also, overloaded functions are now differentiated properly when using `.branded.toEqualTypeOf` (this was a bug that it seems nobody found).

See [#83](mmkal/expect-type#83) for more details or look at the updated docs (including a new section called "[Overloaded functions](https://github.com/mmkal/expect-type#overloaded-functions)", which has more info on how this behaviour differs for TypeScript versions before 5.3).

#### What's Changed

-   Fix rendering issue in readme by [@mrazauskas](https://github.com/mrazauskas) in mmkal/expect-type#69
-   Fix minor issues in docs by [@aryaemami59](https://github.com/aryaemami59) in mmkal/expect-type#91
-   create utils file by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#93
-   branding.ts and messages.ts by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#95
-   improve overloads support, attempt 2 by [@mmkal](https://github.com/mmkal) in mmkal/expect-type#83
-   Extends: explain myself  [`1e37116`](mmkal/expect-type@1e37116)
-   Mark internal APIs with `@internal` JSDoc tag ([#104](mmkal/expect-type#104))  [`4c40b07`](mmkal/expect-type@4c40b07)
-   Re-export everything in `overloads.ts` file ([#107](mmkal/expect-type#107))  [`5ee0181`](mmkal/expect-type@5ee0181)
-   JSDoc improvements ([#100](mmkal/expect-type#100))  [`0bbeffa`](mmkal/expect-type@0bbeffa)

**Full Changelog**: mmkal/expect-type@v0.19.0...v0.20.0
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants