I have a question. To rewrite an application from AngularJS to Angular 2+, is it required to know the first one, or is it enough to know only the Angular 2+?
You don't necessarily need to know it up-front, but you will need to comprehend it well enough to read it. As you proceed you'll likely need to learn specific approaches that were used to understand their purpose and functionality, and to understand how to translate that into the newer framework.
But not everything will translate directly -- some portions may be simple, others may be challenging, and some might need to be wholly reimplemented.
You also need to consider how to avoid bringing outdated approaches or paradigms into the new app. Being strong in your target framework (Angular 2) will be important in this regard.
This depends on how large/complex your application is. It might be easier to just recreate the application from scratch in Angular instead of trying to rewrite it.
AngularJS and Angular (current version 13) are very different. Before learning either, make sure you know JavaScript and for Angular, it helps to know TypeScript. For rewriting, you should at least understand what AngularJS is doing and how it works. I don't think you need an advanced knowledge of it.
If you are planning to gradually rewrite the application, check out NgUpgrade. It is a library created by the Angular team to allow both AngularJS and Angular components to run on the same application.
Angular has a good guide and wiki on how to upgrade from AngularJS and there are numerous 3rd party companies that specialize in upgrading AngularJS.