Open
Description
A large percentage of declaration emit time (and a small percentage of check time) is spent in typeToTypeNode
and tracing indicates that it is called on some types many times (hundreds or thousands in a sufficiently large project). I suspect, but have been able to demonstrate, that those requiring a import()
qualification are particularly expensive. Could we cache the result? Two clear obstacles:
- Nodes are mutated during emit, so we'd need to clone anything retrieved from the cache. I'm reasonably confident that cloning will be cheaper than recomputing.
typeToTypeNode
takes a complex context argument. Possible workarounds include including the context hash in the cache key and storing the cached value on the context.