5 ms·
Does Typescript still require you to have definitions for every library in order to use the library? One thing I love about Flow is that it doesn't have that re
by AgentME 9y ago
Does Typescript still require you to have definitions for every library in order to use the library? One thing I love about Flow is that it doesn't have that requirement. You can start using a new library, and later on if you find that type safety in that library's exports would be useful, then you can look for or write definitions then. You're not blocked from adopting the library. I find for many of my dependencies that I use in a few spots it's not really important for me to have definitions for.
- typebore 9y agotechnically you do need to define at the top level, but no, not in a practical sense: declare var $: any; $( "element" ).compiler.leaves.you.alone
- jsight 9y agoI don't think that Typescript ever did require that? AFAIK, it has always been possible to just declare the variable as "any" type and use it as if it were untyped.
- boubiyeah 9y agoYou can always add a quick and dirty definition like: declare module 'themodule' { var mock: any; export default mock; } But unless the lib doesn't propagate through your code at all, it pays of to give it proper typings.
- mattmanser 9y agoIn the rare cases we find a library that doesn't have a typescript definition, we just do: declare var Thing : any; In a global definition file. Pro tip. We've got a lot of mixed js and ts at the moment and when you're really lazy you can take advantage of how every object is a dictionary in js and just do something like `window["notification"]` instead of window.notification, which resolves to an 'any' type in ts. Obviously you should try and minimise that usage, but it's a useful trick to know.
- mercer 9y agoIs that still the case with the recent update to TypeScript now that it also typechecks object['prop']?