Enhance Spina class typing and expose utility types.
Review Request #13524 — Created Feb. 6, 2024 and submitted — Latest diff uploaded
This change improves typing support throughout Spina, helping to cement
some patterns, improve code maintenance, and correct typing issues in
derived classes.
SpinaClass
is now a genericSpinaClass<TBase>
, which takes in the
class being typed, merges with it, and sets the prototype to it. This
replaces theSpinaClass & TBase
we had internally in several places,
and gives us a proper up-front type to avoid some casting. Untyped, it
behaves like it did before.
__super__
is now mapped toany
instead ofobject
, avoiding type
errors when looking for attributes/functions on parents.Backbone's
_Result<T>
is now exported in Spina asResult<T>
, giving
us a non-private, stable type we can use when we need to reference a
type or callable returning the type.
Unit tests pass.