Ramonda

RMD046 — More than one @StableProps on one class

@StableProps("a")
@StableProps("b")     // merged into the union, and reported
class Watcher extends Hook<{ a: readonly unknown[]; b: readonly unknown[] }> { … }

@StableProps names a set, and it already merges along the class chain — a subclass adds names rather than shadowing the base's. So two on one class has an unambiguous reading, the union, and both declarations take effect. Combine them: @StableProps("a", "b").

A warning rather than a refusal, and the difference from the two above is the union: they have none, so one declaration wins and the other silently does nothing. Here the result is exactly what you asked for, written twice — so nothing is wrong except the spelling.

A subclass declaring its own is not this. That adds to the base's list, which is the intended way to extend it.

Next