TypeScript allows you to have Declaration Files which are files that allow you to describe the shape of code that's written in (for example) plain JavaScript. So, by referencing one of these files you tell TypeScript exactly how that JavaScript code or library you are using should be assumed to be "typed". Of course, this means that the declaration file need to be carefully written and in sync with the JavaScript library you are using.
When should I import typings as a separate import and when it's not necessary ?
Some javascript library like jquery, lodash
wrote with plane javascript or the don't provide a support to work with typescript, and DefinitelyTyped is separate project the help to give a typeing support to project like jquery,lodash
.
Angular with TypeScript can still work without the types imported, but hints in the IDE about methods cannot work without types imported
Typing is not just about intellisense for example prevent passing wrong parameter
$([1,2,3,4]) // for example the selector type is string not array
Many libraries do not have a separate import for types, because the types are made part of the library itself
Angular is a great example of the using typescript.
How when a programmer faces a new lib to use without specific mentioning in the doc could decide whether or not he needs to pull also typings separately ?(opinion)
Declaration files is the job of library/framework author typescript team work to support react for example because this required support jsx, vuejs update there core to support typescript and this as I said give a support to typescript or typing in the job of the author ,sometime they don't want to give a support to typing for any reason you need to check DefinitelyTyped if you don't fine the type related to library you are looking for you need to write the declaration files by your self if you need it.
check this What is “DefinitelyTyped”?