odoo / owl

OWL: A web framework for structured, dynamic and maintainable applications
https://odoo.github.io/owl/
Other
1.11k stars 334 forks source link

[IMP] types: correctly support `Function` type for props-validation #1560

Closed sdegueldre closed 7 months ago

sdegueldre commented 8 months ago

Previously, having a Function as a type in the static props description of a component would only work if the component was not the root component, as the static props description on Component was "any", whereas the static props description on ComponentConstructor was "Schema". This meant that static props description on non-root components was not type-checked, and on root components it was type-checked only on the mount call.

This commit makes it so that static type description is of type "Schema" on Component, now causing static props description to be type-checked, and adds typeof Function to the BaseType union, which allows declaring that a component expects a function as a prop.

Closes #1448

sdegueldre commented 8 months ago

cc @hokolomopo