---
description: >-
  the process of refining types to more specific types than declared is called
  narrowing.
---

# Narrowing

{% tabs %}
{% tab title="📘 手冊" %}
* [Narrowing](https://www.typescriptlang.org/docs/handbook/2/narrowing.html)
* [this-based type guards](https://www.typescriptlang.org/docs/handbook/2/classes.html#this-based-type-guards) (**`this is «T»`**)
{% endtab %}

{% tab title="📗 參考" %}
* 👉 [discriminated union](union/discriminated-union)
{% endtab %}
{% endtabs %}

## Topics

* [type predicate](predicate) - **`«param» is «T»`**&#x20;
* [discriminated union](union/discriminated-union) - common property with literal types
