This has finally been implemented, and now by default parameters are statically typed.
The old behavior can also be obtained by setting the “dynamic_typing” field in the parameter descriptor.
The relevant PRs are:
- https://github.com/ros2/rclcpp/pull/1522
- Enforce static parameter types when dynamic typing is not specified by ivanpauno · Pull Request #683 · ros2/rclpy · GitHub
I will be working on documenting some of the decisions that were made and will post a link to that soon.