Sometimes, the libraries won't have types (which makes TS refuse to use them). This pernicious myth needs to die, and the TS team needs to put this in big, fat, bold letters on their website. You can just use a blanket type declaration for any module you wish to import, without type definitions. E.g. jQuery (imagine it had no type definitions): declare var $: any ; Done. TS will just accept $ as being any type, and you can use all of jQuery without any type checking. There is practically no overhead to using a 3rd party lib without type declarations in TypeScript; just add those global declarations and you're done. The exception are libs which heavily extend existing prototypes. In that case: yes, TS will constantly resist you. Good article, thanks for the primer on Flow!