π€ Language/TypeScript(12)
-
[Language/TypeScript] κ°μ²΄μ§ν₯μ€κ³μμΉ: SOLID
SRP(Single Responsibility Principle) λ¨μΌμ± μμμΉ: ν΄λμ€λ νλμ μ± μλ§ μ ΈμΌν¨. OCP(Open Closed Principle) κ°λ°© νμ μμΉ: ν΄λμ€λ νμ₯μ λν΄ μ΄λ €μκ³ μμ μ λν΄ λ«νμμ΄μΌ νλ€. μ¦ ν΄λμ€μ κΈ°μ‘΄ μ½λλ₯Ό μμ νμ§ μκ³ νμν κΈ°λ₯μ νμ₯ν μ μμ΄μΌνλ€(μΈν°νμ΄μ€, μμ) LSP(Liskov Substitution Principle) 리μ€μ½ν μΉν μμΉ: μλΈνμ μ κΈ°λ°μ΄ λλ μνΌνμ μ λ체ν μ μμ΄μΌν¨ ISP(Interface Segregation Principle) μΈν°νμ΄μ€ λΆλ¦¬ μμΉ: ν΄λμ€λ μμ μ΄ μ¬μ©νμ§ μλ μΈν°νμ΄μ€μ μν₯μ λ°μ§ μμμΌ νλ€. λ°λΌμ μΈν°νμ΄μ€λ₯Ό λ무 ν¬κ² ꡬννκΈ° 보λ€λ λλ ·ν κΈ°λ₯λ¨μλ‘ κ΅¬ννλ κ²μ΄ μ ..
2023.07.27 -
[Language/TypeScript] μΈν°νμ΄μ€
μ μ: TSμμ κ°μ²΄μ νμ μ μ μν λ μ¬μ©ν¨, μ΄λ ν κ°μ²΄λ₯Ό μμ± ν λ κ°μ ΈμΌ ν μμ±κ³Ό λ©μλλ₯Ό μ μν¨. ν΄λμ€μμ μ°¨μ΄ κΈ°λ³Έ ꡬνμ μ μνλ μΆμ ν΄λμ€μ λ¬λ¦¬ κΈ°λ³Έ ꡬνμ μ 곡νμ§ μλλ€. λ¨μΌμμλ§ μ§μνλ μΆμ ν΄λμ€μ λ€λ₯΄κ² λ€μ€ μμμ μ§μνμ¬ νλμ ν΄λμ€κ° μ¬λ¬ μΈν°νμ΄μ€λ₯Ό ꡬνν μ μλ€. μΆμν΄λμ€λ₯Ό μμλ°μ μμ ν΄λμ€λ λ°λμ μΆμ ν¨μλ₯Ό ꡬνν΄μΌν¨. μΈν°νμ΄μ€λ₯Ό ꡬννλ γ γΉλμ€λ μΈν°νμ΄μ€μ λͺ¨λ λ©μλλ₯Ό ꡬνν΄μΌν¨. μ 리ν μ¬μ©μ λ΅ κΈ°λ³Έ ꡬνμ μ 곡νλ©° νμ₯: μΆμ ν΄λμ€ κ°μ²΄μ νΉμ ꡬ쑰 μ μ§: μΈν°νμ΄μ€
2023.07.27 -
[Language/TypeScript] μΆμ ν΄λμ€
μ μ: μΈμ€ν΄μ€ν ν μ μλ ν΄λμ€λ‘ μμ ν΄λμ€μκ² μΆμν¨μλ₯Ό λ°λμ λ§λ€λλ‘ κ°μ ν¨. abstract class Shape { abstract getArea(): number; // μΆμ ν¨μ μ μ!!! printArea() { console.log(`λν λμ΄: ${this.getArea()}`); } } class Circle extends Shape { radius: number; constructor(radius: number) { super(); this.radius = radius; } getArea(): number { // μμ λμ΄λ₯Ό ꡬνλ 곡μμ νμ΄ X λ°μ§λ¦ X λ°μ§λ¦ return Math.PI * this.radius * this.radius; } } class Rectang..
2023.07.27 -
[Language/TypeScripts] μμ
μ μ: ν΄λμ€ κ°μ κ΄κ³λ₯Ό μ μνλ κ°λ μΌλ‘, κΈ°μ‘΄ ν΄λμ€μ μμ±/λ§€μλλ₯Ό λ¬Όλ €λ°μ μλ‘μ΄ ν΄λμ€λ₯Ό μ μν μ μμ. extends ν€μλλ₯Ό μ¬μ©νμ¬ κ΅¬νν¨.class Animal { name: string; constructor(name: string) { this.name = name; } makeSound() { console.log('λλ¬Ό μ리~'); } } class Dog extends Animal { age: number; constructor(name: string) { super(name); this.age = 5; } makeSound() { console.log('λ©λ©!'); // λΆλͺ¨μ makeSound λμκ³Ό λ¬λΌμ! } eat() { // Dog ν΄λ..
2023.07.27 -
[Language/Typescript] ν΄λμ€
μ μ : κ°μ μ§ν₯ νλ‘κ·Έλλ°μ ν΅μ¬ κ΅¬μ± μμ μ€ νλλ‘ κ°μ²΄λ₯Ό λ§λ€κΈ° μν νμ΄λ€. ꡬμ±μμ μμ±(attribute): κ°μ²΄μ μ±μ§ κ²°μ λ§€μλ(method): κ°μ²΄μ μ±μ§μ λ³νμν€κ±°λ κ°μ²΄μμ μ 곡νλ κΈ°λ₯λ€ μ¬μ© κ°μ²΄: ν΄λμ€λ₯Ό κΈ°λ°μΌλ‘ μμ±, instanceλΌκ³ λ ν¨ μ μ class ν€μλλ‘ μ μν¨ method, attirbute μ μ ν, new ν€μλλ‘ κ°μ²΄ μμ±κ°λ₯ class Preson { name: string; age: number; constructor(name: stirng, age: number) { this.name = name; this.age = age; } const person = new Person('Spartan', 30); person.sayHell..
2023.07.27 -
[Language/TypeScript] μ νΈλ¦¬ν° νμ
μ μ : μ΄λ―Έ μ μν΄ λμ νμ μ λ³νν λ μ¬μ©νκΈ° μ’μ λ¬Έλ². μ’ λ₯ Partial : κΈ°μ‘΄ νμ μ μΌλΆ μμ±λ§ μ¬μ©κ°λ₯ Required : λͺ¨λ μμ±μ΄ μ¬μ©λμ΄μ§κ² ν¨ Readonly : μ½κΈ°μ μ© μμ±, μμ λΆλ³ κ°μ²΄λ‘ μ·¨κΈνκ² ν¨ Pick νμ Tμμ Kμμ±λ§ μ ννμ¬ μλ‘μ΄ νμ μ λ§λ¬ Omit νμ Tμμ Kμμ±λ§ μ μΈν μλ‘μ΄ νμ κ·Έ μ΄μΈ λ€μν νμ λ€ ==> https://www.typescriptlang.org/ko/docs/handbook/utility-types.html References https://teamsparta.notion.site/Sparta-TS-_-4-bc51a698598841fab5172670cdc3bd53#d35b4a4b2fec4ede9ef3572412ba9e2..
2023.07.26