# Why KeyPath?

**URL:** <https://forums.swift.org/t/why-keypath/64437>\
**Category:** Using Swift\
**Created:** [April 16, 2023, 9:55pm UTC](https://forums.swift.org/t/why-keypath/64437 "2023-04-16T21:55:38Z")\
**Posts on this page:** 1\
**Showing post:** 9

<div class="post-metadata">

**Author:** ![anon9791410](https://avatars.discourse-cdn.com/v4/letter/a/9fc348/32.png) [@anon9791410](https://forums.swift.org/u/anon9791410)\
**Post date:** [April 18, 2023, 1:44am UTC](https://forums.swift.org/t/why-keypath/64437/9 "2023-04-18T01:44:09Z")

</div>

> [@taylorswift](#):
>
> not a typealias for `(Root) -> Value`

It _can_ be more than `(Root) -> Value`, like simultaneously being [akin to `(Root, Value) -> Void`](https://developer.apple.com/documentation/swift/writablekeypath).

[`ReferenceWritableKeyPath`](https://forums.swift.org/t/property-wrappers-access-to-both-enclosing-self-and-wrapper-instance/32526) makes SwiftUI more usable as well.

---

_[View the full topic](https://forums.swift.org/t/why-keypath/64437)._
