Supporting expressing resolution entirely in code
TypeScript’s module resolution for type definitions currently heavily relies on probing. Some examples of this are how node_modules/
folders are probed for @types/
packages when a bare specifier is imported that does not provide it’s own types, or how importing a file with a .js
extension will resolve types to a sibling file with a .d.ts
extension instead.
Probing is problematic for us at Deno, because we are unable to perform any kind of probing when importing files using https://
specifiers. This is because it is neither side-effect free to perform probing on https://
(ie it is observable), and it is incredibly slow because of network round trip times. Non Deno TypeScript users have also reported similar issues with probing due to reliance on network file systems (microsoft/TypeScript#11979).
Additionally, probing has a performance impact for all users regardl