Follow this simple rule: Selectors should be implemented in the same file they are referenced.
The following counterexample establishes a hidden coupling between the parent and child component. If another component tries to use ChildComponent or if the method is renamed in ParentComponent, it will crash at runtime.
Instead, always pass selectors from parents to children. In the following example, it is explicit that the child component needs a CKTypedComponentAction<> selector. If the parent component renames the someAction: method, it’s far easier to catch renaming the parameter.