1. A system comprising: a processor and a memory including a module configured to cause the processor to: provide static type checking against an external data source in an interactive editing environment by: providing an extension point for the external data source, the extension point accessed by a public application programming interface, the public application programming interface providing an interface to an extension customized for the external data source, the extension comprising logic specific to the external data source and specific to how information from the external data source is to appear within a programming language type system within the interactive editing environment, wherein data of the external data source is dynamically accessible by calling a method on the external data source to receive the data; implementing the interface by creating a class that inherits from a system synthetic type so that a synthetic class is created for the external data source, the synthetic class representing a hosted model; importing types marked with an attribute denoting the extension and transforming the imported types into internal representations based on methods inherited from the system synthetic type; generating code when a call is made on the system synthetic type or when a method is invoked on the system synthetic type that calls a method invocation on the synthetic class for the hosted model; and replacing the synthetic types with dynamic calls to the external data source during compilation, wherein the external data source comprises at least one of an instance of a database, an Extensible Markup Language (XML) file containing data specific to a domain, a spreadsheet containing data pertaining to a specific domain or a web.