Skip to content

Make isLong a TypeScript type guard.#63

Merged
dcodeIO merged 1 commit intodcodeIO:masterfrom
tom5760:typescript-is-long-type-guard
Jul 18, 2018
Merged

Make isLong a TypeScript type guard.#63
dcodeIO merged 1 commit intodcodeIO:masterfrom
tom5760:typescript-is-long-type-guard

Conversation

@tom5760
Copy link
Contributor

@tom5760 tom5760 commented Jul 2, 2018

This lets TypeScript narrow types when it can, making type checking and
code completion a bit more useful

For example:

function makeNumber(x: number | Long): number {
  if (isLong(x)) {
    // If isLong wasn't a type guard, this would cause a compilation
    // error, since TS wouldn't know that x was specifically a Long.
    return x.toNumber()
  }
  return x
}

For more info:

https://www.typescriptlang.org/docs/handbook/advanced-types.html#user-defined-type-guards

This lets TypeScript narrow types when it can, making type checking and
code completion a bit more useful

For example:

```
function makeNumber(x: number | Long): number {
  if (isLong(x)) {
    // If isLong wasn't a type guard, this would cause a compilation
    // error, since TS wouldn't know that x was specifically a Long.
    return x.toNumber()
  }
  return x
}
```

For more info:

  https://www.typescriptlang.org/docs/handbook/advanced-types.html#user-defined-type-guards
@dcodeIO dcodeIO merged commit 6f10b74 into dcodeIO:master Jul 18, 2018
@dcodeIO
Copy link
Owner

dcodeIO commented Jul 18, 2018

Thanks! :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants