გააზიარე Node.js/Express-ის სრული სტეკის აპლიკაცია გადახდის გვერდების ბრენდინგის ავტომატიზაციისთვის.
Frontend
მუშაობა 6: დაწერეთ გენერიკული ფუნქცია, რომელიც იღებს ობიექტს აუცილებელი თვისებით name ტიპის string და აბრუნებს ობიექტის სახელის სტრიქონს.
როგორ მუშაობდით Git-თან: რა იყო ბრანჩინგის ნაკადი, როგორ გამოუშვით რელიზები, როგორ გააკეთეთ hotfix?
TypeScript-ში any და unknown-ს შორის რა განსხვავებაა? რატომ ლინტერი არ უყვება any-ს, მაგრამ საჭიროებს ტიპის შეზღუდვას unknown-ისთვის?
/** * დავალება 4: გარდაქმნათ მოცემული ტიპი `MaybeProps`, რათა მისი ყველა თვისება გახდეს აუცილებელი. */ type MaybeProps = { a?: number; b?: string; };
მოსალუქნე 2: ქვემოთ მოცემულია რამდენიმე Todo ინტერფეისის განცხადება, ახსენით რა ხდება როდესაც ისინი ერთ სივრცეში არიან. განიხილეთ როგორ უვლის მათ TypeScript და შეავსეთ `myTodo` ობიექტი რათა აკმაყოფილოს შერწყმული Todo ინტერფეისის მოთხოვნები. ```typescript interface Todo { title: string; dueDate: Date; } interface Todo { description: string; completed: boolean; } interface Todo { priority: 'high' | 'medium' | 'low'; completed: string; } const myTodo: Todo = {}; ```
/** * დავალება 3: ანალიზი გაუკეთეთ ქვემოთ მოცემულ ფუნქციას და გამოასწორეთ ყველა შეცდომა. ახსენით `never` ტიპის როლი TypeScript-ში. */ function throwError(): never { throw new Error('შეცდომა მოხდა'); } /** * დავალება 4: გარდაქმნათ მოცემული `MaybeProps` ტიპი, რათა მისი ყველა თვისება იყოს აუცილებელი. */ type MaybeProps = { a?: number; b?: string; }; /** * დავალება 5: შექმენით გენერიკული ტიპი `Container`, რომელიც შეიცავს ერთ თვისებას `value`. * `value`-ის ტიპი უნდა იყოს შეზღუდული `string` ან `number`-ზე. */ type Container<T> = { value: T; };
მოვალეობა 7: არსებობს ტიპები Alien და Human, რომლებიც გაერთიანებულია ტიპში Person. დაწერეთ ფუნქცია checkAlien, რომელიც ამოწმებს, არის თუ არა გადაცემული Person უცხოპლანეტელი. გამოასწორეთ TypeScript-ის შეცდომა, როდესაც მიმართავთ isAlien თვისებას.
გუნდაში უარყოფითი გამოცდილება გქონია, მაგალითად, კოდის განხილვის დროს ინტენსიური კამათები? როგორ მოიქცეოდი ასეთ სიტუაციაში?
გააზიარეთ Astro-ის გამოყენების შესახებ: როგორ შეარჩიეს, როგორ მართავთ კონტენტს?
/** * დავალება 1: გენერიკები და გასაღების ტიპის უსაფრთხოება * შექმენით ფუნქცია `getProperty`, რომელიც იღებს ობიექტს და გასაღებს. * გამოიყენეთ გენერიკები იმის უზრუნველსაყოფად, რომ ფუნქცია იყოს ტიპის უსაფრთხო და რომ გასაღები ობიექტზე იყოს. */ function getProperty<T extends Record<string, unknown>, K extends keyof T>(obj: T, key: K): T[K] { return obj[key]; } getProperty('str', 'toString') /** * დავალება 2: ქვემოთ მოცემულია რამდენიმე Todo ინტერფეისის განცხადება, ახსენით რა ხდება, როდესაც ისინი ერთ სივრცეში არიან. * განიხილეთ როგორ უვლის მათ TypeScript და შეავსეთ `myTodo` ობიექტი, რათა აკმაყოფილებდეს შერწყმული Todo ინტერფეისის მოთხოვნებს. */ interface Todo { title: string; dueDate: Date; } interface Todo { description: string; completed: boolean; }
გააზიარეთ კუკი-ბაზირებული ავტორიზაცია და ორმხრივი ავტორიზაცია პირადი კაბინეტში.
რატომ გადაწყვიტეთ სამუშაოს ძებნა და რატომ ჩვენთან?