>I change the property 'Part' to 'PartList' on my DTO and now I need to find all places that Part is referenced and update them.
Yup, I use Cursive IDE (https://cursive-ide.com/) and it provides precise symbol lookup using static analysis.
>I have a function that takes a 'User' as a parameter, but I don't know what the property is called for the display name.
Clojure is a functional language so I don't have a problem of dealing with a plethora of classes. The data model is defined using the schema and I can easily tell what it looks like. Furthermore, since it's a functional language, I don't have any global state to worry about. I can try any function in the REPL in isolation to see what it's doing and how it behaves with different inputs.
Destructuring (http://clojure.org/guides/destructuring) is alos commonly used for readability in Clojure. When a function takes a non-primitive type, it's idiomatic to destructure it to show what the shape of the data is right in the arguments.
>I add a new parameter to a render() function and I need to find out all the places the function is called so I make sure to update them.
Yup, absolutely. I can look up usages of a function in Cursive.
>I make a spelling mistake calling a function or referencing a property. Do I get any instant alert to the error or do I have to run the app, or run REPL on it?
Yes, Cursive will highlight undefined symbols as well is invalid function arity. I get immediate feedback if I mistype something, try to use a function that doesn't exist, or pass wrong number of arguments to a function.
>Ideally the mistake is caught as soon as I type it. Does ClojureScript have this?
That's generally exactly what happens in my experience, and in addition I also have the REPL that lets me run any code if I'm not sure about what it's doing.