ProgrammingLang/typescript 13

[typescript] 12. interface 와 추상 class 차이

[typescript] 12. interface (인터페이스)와 추상 Class 차이 1. interface(인터페이스) 1) 개념 interface는 A와 B 간의 통신규약(약속)입니다. 그래서 interface에는 선언만 존재합니다. 좀 더 풀어서 설명을 하면, 프로그래머 A와 B가 총을 개발한다면 아래 와 같이 기능 개발을 따로 할 수 있습니다. - A : 총의 기능을 만듭니다. - B : 총을 실제로 사용하는 부분을 만든다. 그런데 개발 시간이 촉박하여 A와 B는 동시에 개발을 해야 한다고 할 때, A, B는 서로 공통적으로 사용할 부분을 미리 선언을 합니다. 여기서 미리 선언하는 정보를 모아 둔 것을 interface라고 합니다. A, B는 interface를 사용하여 서로 개발을 진행 후 B는..

[typescript] 11. 오버라이딩과 오버로딩 그리고 추상 class

[typescript] 11. 오버 라이딩(Overriding)과 오버 로딩(Overloading) 1. 오버 라이딩(Overrding) 1) 개념 부모 class에 정의된 method를 자식 class에서 재 정의하는 개념입니다. 2) 사용 이유 상속받은 부모 method를 무시하고 새로운 method를 정의하기 위해서 사용합니다. 그리고 추상 class를 구현하기 위해서 사용합니다. 3) 형태 (1) Overriding이 가능한 조건 A. overriden method의 매개변수 타입은 overriding method의 매개변수 타입과 같거나 상위 타입이어야 한다. (단, overrding method의 매개 변수 타입이 Any 타입이면 예외) B. overriden method의 매개변수 개수가 o..

[typescript] 10. class 접근 제한자, super VS this, setter/ getter

[typescript] 10. class 접근 제한자 1. typescript에서 사용 가능한 접근 제한자 1) 개념 접근 제한자는 속성 또는 method를 사용하기 위한 접근을 제한하겠다는 의미입니다. 2) 사용 이유? 사용하는 이유는 프로그램의 버그를 줄이고자 사용한다고 볼 수 있습니다. 왜냐하면 개발자들이 다른 사람이 만든 class의 모든 것을 제어할 수 있으면 의도치 않게 버그가 발생할 수 있습니다. 그래서 접근 제한자를 사용하여 내가 만들 class를 다른 사람이 함부로 중요한 값을 수정하지 못하게 막는 것입니다. 3) 접근 제한자의 종류는 다음과 같습니다. - 기본 접근 제한자는 public입니다. 접근 제한자 특징 상속 여부 instance를 통한 접근 public public으로 설정된 ..

[typescript] 9. class 상속과 포함 관계

[typescript] 9. class 상속과 포함 관계 1. 상속(IS-A) 1) 개념 상속은 class간의 계층을 만들어서 코드 중복을 줄이는 객체지향 프로그래밍 방법 입니다. 상속관계에는 부모 class 와 자식 class라는 개념이 존재하며, class를 상속을 받는 다는 것은 자식 class가 부모 class의 공개된 속성과 method를 사용 할 수 있다는 것을 의미 합니다. typescript에서 자식 class는 1개의 부모 class만 상속 받을 수 있습니다. 2) 상속 관려 용어 동의어 정리 * 부모 class = base class = super class * 자식 class = derived classs = sub class 3) 상속(IS-A) 관계를 만드는 방법 상속(IS-A) ..

[typescript] 8. class 와 instance

[typescript] 8. class 와 instance 1. Class 개념 Class는 자동차 부품 설계도로 비유할 수 있습니다. 차동차 부품 설계도에는 부품의 재료, 부품의 기능 정의되어 있습니다. 이를 Class에 비유하면 재료는 속성, 기능은 method가 됩니다. 또한 부품의 기능이 여러 개 있듯이 Class도 여러 개의 method를 가질 수 있습니다. - 부품 설계도를 Class와 비교 부품 설계도 Class 재료 속성 기능 method * 속성 동의어 = 멤버 변수 * method 동의어 = 멤버 함수 2. Class 설계의 핵심 1) Class 설계시 속성과 연과 된 method만을 정의해야 합니다. (가장 중요) 2) Class는 다른 Class와 결합도가 적어야 합니다. - 결합도..

[webpack] 에러 발 생시 해결 방법

1. 상황 1 1) npm install -g webpack 을 설치 했다. 2) webpack을 하는데 안된다. 아래와 같은 에러 발생시 PS C:\web-project\book-mark> webpack internal/modules/cjs/loader.js:583 throw err; ^ Error: Cannot find module 'webpack' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15) at Function.Module._load (internal/modules/cjs/loader.js:507:25) at Module.require (internal/modules/cjs/loader.js:637:17) ..

[typescript] 7. 함수 (선언적 함수, 익명 함수, 콜백 함수)

[typescript] 7. 함수 (선언적 함수, 익명 함수, 콜백 함수) 1. 함수란? - 함수는 애플리케이션 코드를 구성하는 기본 요소입니다. - 자주 사용되는 코드를 묶어놓은 코드 덩어리 입니다. - typescript에서 함수는 클래스나 네임스페이스 내에 선언 할 수 있습니다. - 함수는 모듈로 서도 사용됩니다. 2. 자바스스크립트 함수의 종류 참조 : [javascript] 2.자바스크립트 함수란? 1) javascript 함수 (1) 선언적 함수 - 호이스팅이 발생 합니다. *호이스팅 이란? 코드를 실행 하게 되면 호이스팅이되는 코드를 맨위로 올리는 것을 말합니다. 따라서 함수를 사용후에 나중에 정의해도 됩니다. (2) 익명 함수 - 호이스팅 이 발생하지 않습니다. - 함수를 선언이 후에만 사..

[typescript] 6. 연산자 와 디스트럭쳐링(destructuring)

[typescript] 6. 연산자 1. 기본 연산자 1) 산술 연산자 산술 연산자 의미 + 덧셈 - 뺄샘 * 곱셈 / 나눗셈 % 나머지 2) 비교 연산자 비교 연산자 예 의미 == a == b a 와 b의 값이 같은지 비교 === a === b a 와 b의 값과 타입이 같은지 비교 != a != b a 와 b의 값이 다른지 비교 !== a !== b a 와 b의 값과 타입이 다른지 비교 > a > b a 가 b 보다 큰지 비교 = a >= b a 가 b 보다 크거나 같은지 비교 판변 조건이 false 이면 표현식 2이 반환1 > 2 ? console.log("aa") : console.log("bb")// 출력 결과 bb 2. 디스트럭처링(destructuring) - typescript는 ES6의 디..

[typescript] 5. 제어문

[typescript] 5. 제어문 1. 제어문 이란? - 코드의 흐름을 제어 합니다. - 조건 문과 반복 문이 존재 합니다. 2. 조건 문 - 조건에 맞을때 해당 코드를 수 행 합니다. 1) if 문 - 구문 if () { 실행 할 코드}let able:boolean = true; if (able) { console.log("test");} 2) switch 문 (1) 구문 switch(표현식) { case 값: ... 수행 할 코드break; default: ... 조건에 맞는 것이 없을 시 수행 할 코드break;} (2) 특이 사항 - fall-through 기능 제어 > 간혹의 경우 여러개의 case문의 결과를 동일 하게 처리 하기 위해서 case문을 탗출하는 break 문을 생략 하여 쓰는 경..

[typescript] 4. typescript 기본 타입과 변수 선언

[typescript] 4. typescript 변수 1. 선언자 - 변수 앞에 위치하는 키워드 - 선언자에 따라서 변수의 scope가 달라진다. 1) scope level - 함수 level : 선언자가 함수 level일 경우 해당 변수는 함수 안에 개별 선언으로 인식 된다. - 블록 level : 선언자가 블록 level일 경우 해당 변수는 블록 안에 개별 선언으로 인식 된다. - 전역 level : 선언자가 전역 level일 경우 해당 변수는 프로그램 모든 범위에서 개별 선언으로 인식 된다. 2) scope의 운선 순위 - 블록 level > 함수 level > 전역 level 항목 scope (영향 범위) 특징 함수 level 블록 level 전역 level var O X O 호이스팅 이된다. (..