# Typescript

## რა არის Typescript და როგორ მუშაობს?

ts-ის ახსნას არ დავიწყებ დეტალებში რახანც ალბათ იცით/უნდა იცოდეთ რომ javascript-ს superset-ია, მაგრამ უფრო საინტერესო ის არის თუ როგორ მუშაობს :face\_with\_monocle:, და საერთოდ როგორ მუშაობს ედითორების ინტელისენსი? ნუთუ ყველა ედითორი ცალ ცალკე წერს დახმარების ლოგიკას? ეს ხომ სიგიჟე იქნებოდა. საბედნეროდ არა. C, C++, js, typescript, php, python და ყველა ენა რომელსაც რომელიმე ედითორში ინტელისენსი აქვთ იყენებენ ეგრედ წოდებულ language server-ებს, ეს უბრალოდ json-ის websocket სერვერია, ყველაფერი შემოწმების გარშემო წერია ამ სერვერზე, ის აბრუნებს ერროებს, ის ამოწმებს სინტეაქს და გვეხმარება ჩვენ დეველოპმენტის დროს.&#x20;

და ეხლა მერე რა რომ ეს ვიცით? ის რომ შეკითხვა შეიძლება დაისვას თუ რატო არ მეხმარება მე TS როცა js-ს ვწერ,  ყველა js ხომ ვალიდური TS-ია, ასერომ რა პრობლემა იქნებოდა რომ დამეხმაროს :thinking: ნუ არც იქნებოდა პრობლემა, მინდა მიხვდეთ რომ ts ორი მთავარი ნაწილასგან შედგება, ნუ ამ არუგმენტისთვის შეგვიძლია ასე ჩავთვალოთ, transpile-ის ნაწილი, რომელიც ჩვენ კოდს იღებს და js-ში გადააქვს და ასევე ტიპების შემომწების ნაწილი. ჩვენ თავისუფლად შეგვიძლია დავყოთ ეს ორი ნაბიჯი თუ რომლიმე არ მოგვწონს და ისე გავმოიყენოთ typescript-ის კარგი ნაწილი. მოდი type checking-ზე ვილაპარაკებ აქ.

.d.ts ფაილების ქონისთვის არ არის საჭირო რომ კოდი ტაიპსკრიპტშI დაიწეროს, ჩვენ შეგვიძლია ჯავასკრიპტის პროექტში შევქმნაათ .d.ts ეგრედწოდებული lib ფაილები და ვსიო ვწეროთ იქ ტიპები. მაგრამ რა ხეირი ჩვენ ამით? ჯერ ერთიც ზუსტად ასე იწერება ბევრი ლაიბრარი, მთავრი კოდი დაიწერა javascript-ში მაგრამ მერე .d.ts ფაილში დაწერა ტიპები იმისთვის რომ მომხმარებელმა დეველოპერმა თავისფულად გამოიყენონ (ასე არის მაგალIთად svelte დაწერელი), ნუ მაგრამ ჩვენ არ ვწერთ ლაიბრარებს მარტო  საიტებსაც ვწერთ და მანდ როგორ უნდა გამოვიყენოთ? ზუსტად აქ შემოდის [jsdoc](https://jsdoc.app/) რომელიც არის უბრალოდ კომენატრების სისტემა, ჩვენ შეგვიძლია კომენატრად დავწეროთ ტიპები, დავაიპორტოდ .d.ts ფაილიდამ გავწეროთ inline და სხვა ბევრი რამ, არანაირი ლიმიტაცია არ გვაქ ჩვენ, typechecking ჩველებრივად მუშაობს!! ეს რისთვის არის კარგი თქვენთვის მომინდია რომ დაფიქრდეთ.

იმედია ამის გაგების მერე უკეთ გაიზრეთ თუ როგორ მუშაობს typescript და რას აკეთებს რეალურად, "უბრაოდ" გადაყავს ჩვენი კოდი .js-ში იმისთვის რომ ჩვენ შევძლოთ ახალი კოდის წერა ბრაუზერის ვერსებზე დარდის გარეშე და ასევე ამომწებს ტიპებსა.



უფრ დეტალური ახსნებისთვის ეს ქვედა გვერდები წაიკითხეთ.



{% content-ref url="typescript/zogadi-rchevebi" %}
[zogadi-rchevebi](typescript/zogadi-rchevebi)
{% endcontent-ref %}

{% content-ref url="typescript/sakhlebis-konventsia" %}
[sakhlebis-konventsia](typescript/sakhlebis-konventsia)
{% endcontent-ref %}

