Przez type erasure informacja o typie generycznym nie jest dostępna w runtime. `reified` w funkcji `inline` zachowuje typ w miejscu wywołania, więc możesz użyć np. `T::class` albo `value is T`.
inline fun <reified T> Any?.asTypeOrNull(): T? = this as? T
val x: Any = 123
val n: Int? = x.asTypeOrNull<Int>()