# Subtypes of an abstract type

**URL:** <https://discourse.julialang.org/t/subtypes-of-an-abstract-type/7151>\
**Category:** General Usage\
**Created:** [November 18, 2017, 2:57pm UTC](https://discourse.julialang.org/t/subtypes-of-an-abstract-type/7151 "2017-11-18T14:57:39Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Qiyamah](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/qiyamah/32/2660_2.png) [@Qiyamah](https://discourse.julialang.org/u/Qiyamah)\
**Post date:** [November 18, 2017, 2:57pm UTC](https://discourse.julialang.org/t/subtypes-of-an-abstract-type/7151/1 "2017-11-18T14:57:40Z")

</div>

Hi,

Is there a function which takes an argument and returns a list of that argument’s subtypes.

Example:

abstract X

type Y \<:X  
end

type Z \<:X  
end

get\_subtypes(X) will return [:Y,:Z]

Thanks

---

<div class="post-metadata">

**Author:** ![mauro3](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mauro3/32/292_2.png) [@mauro3](https://discourse.julialang.org/u/mauro3)\
**Post date:** [November 18, 2017, 3:11pm UTC](https://discourse.julialang.org/t/subtypes-of-an-abstract-type/7151/2 "2017-11-18T15:11:35Z")

</div>

```julia
julia> subtypes(Number)
2-element Array{Union{DataType, UnionAll},1}:
 Complex
 Real   

```

---

<div class="post-metadata">

**Author:** ![miguelraz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/miguelraz/32/631_2.png) [@miguelraz](https://discourse.julialang.org/u/miguelraz)\
**Post date:** [November 18, 2017, 7:25pm UTC](https://discourse.julialang.org/t/subtypes-of-an-abstract-type/7151/3 "2017-11-18T19:25:48Z")

</div>

Also remember you have `apropos`

```julia
julia> @doc apropos
  apropos(string)

  Search through all documentation for a string, ignoring case.

julia> apropos(subtypes)
Base.unsafe_read
Base.subtypes
Base.unsafe_write
Base.isleaftype
Base.checkbounds
Base.similar
Base.Dates.TimeType
Base.Dates.format
Compat

```
