This wasn't quite right and the 'develop' branch of the TypeScript compiler no longer accepted the hacky typing. This should be the correct typing according to information from the TS team here:
https://typescript.codeplex.com/workitem/132
The 'develop' TypeScript compiler is pickier about generics being fully specified. In this case, 3 arrays could be more specific about the type of elements.
From "http://leafletjs.com/reference.html#featuregroup"
L.FeatureGroup
Extended LayerGroup that also has mouse events (propagated from members
of the group) and a shared bindPopup method. Implements ILayer
interface.
From the comments, subdomains can be a string or an array of strings. We
can't make any strong type inference from the interface.
Quote:
"Subdomains of the tile service. Can be passed in the form of one string (where
each letter is a subdomain name) or an array of strings."