Angular에서 사용되는 타입스크립트 문법

타입스크립트에 대한 간단한 문법을 정리하려고 합니다.

타입과 문자열

선언자

  • var : javascript에서 전통적으로 사용해온 선언자로 모든 타입을 허용
  • let : typescript에서 특화시킨 선언자로 타입을 지정해야 함

배열타입

배열의 타입을 아래와 같이 설정하며 배열에 값을 입력할때는 push()를 사용함

  • let fruits: string[] = [“바나나”,”사과”,”오렌지”];
  • let num1:Array = [1,2,3];
  • let num2:Array = new Array();
    • num2.push(1);
    • num2.push(2);
    • num2.push(3);

유니언타입

유니언 타입은 2개이상의 타입을 정의하고 그중에 맞는 것이 자동 설정이 되게 함

  • var unionX: string | number = 1; –> 1는 숫자이므로 number타입으로 자동 설정
  • var unionX: boolean | string = true; –> true는 boolean이므로 boolean타입으로 자동 설정

유니언타입으로 함수 선언
예>

function typeCheck(p: string | number): string } number {
return p;
}

let type = typeCheck(1); // --> number 1
let type = typeCheck("1"); // --> string 1

문자열 표현

  • 줄바꿈 : 개행문자( \n )으로 표시

  • 여러줄 줄바꿈 : 백틱을 이용 ( ` )

    예제>

    let multiLine: string = 
    `
    one = 1
    twe = 2
    `
  • 백틱으로 ${표현식} 사용가능

    예제>

    let w: wtring = "world";
    let one: number = 1;
    function hi() {
    return "hi"
    }
    
    let hellow_msg: string = `
    hello ${w} // --> hello world
    1 + ${one}  // --> 1 + 1
    ${hi()} // --> hi
    `

디스트럭처링 지원

디스트럭처링은 배열이나 객체의 데이터를 각 변수에 할당 할 때 간단하게 처리하는 방법

예제>

var params = ["반갑습니다.", 100];
let [m_name, m_num] = params;
console.log (`
    ${m_name}
    ${m_num}
`);

메서드

배열 메서드

filter() 메서드

배열의 특정 조건에 부합하는 요소만 걸러서 보여줌

  • arr.filter(콜백함수);

예제>

var rtn = [-1, -2, 0, 3, 5, -2].filter( po ); // --> 3,  5

function po(value) {
     return value > 0;
}

forEach() 메서드

배열을 순회하며 전체에 특정명령어를 실행 시킴

  • arr.forEach(콜백함수);

예제>

[1, 2, 3, '사과'].forEach(arry);

function arry(ele, idx, array) {
    console.log ('[' + idx + '] = ' + ele );
}

화살표 함수

화살표 함수는 익명함수와 동일한 역활을 함

익명함수
function() {   ...   }
() => {  ...  }
변수에 할당하는 함수
var p1 = function(x) { return x * x; };
var p1 = (x) => { return x * x; };

Function이 한줄인 경우는 아래처럼도 표현이 가능함

var p1 = x  =>  x * x;

즉시 실행함수는 아래처럼 표현이 가능함

((x) => {
    console.log( x * x ) ;
})(3);

화살표함수에 필터 매서드 적용

var num_list [ 1, 2, 3, 4, 5 ];
num_list = num_list.filter( n => {
    return n % 2 == 0;
});
console.log(num-list);  // ---------> [ 2, 4 ]

객체지향 프로그래밍

클래서 선언과 사용

기본적인 클래스 선언 형태

class MyClass {
     constructor() { // constructor는 생성자로 클래스객체가 생성될때 기본적으로 호출되는 메서드입니다.
     }
}

클래스의 사용

클래스에 new키워드를 사용하여 객체를 생성하여 사용합니다.

var myClass = new MyClass();  // new키워드를 사용하여 객체를 생성하여 사용함

전역변수의 선언과 사용

constructor()public 접근자를 사용하여 전역변수를 선언합니다.

class MyClass {
     constructor( public aa, public bb) { // constructor에 public으로 선언한 변수는 클래스 내에서 전역변수로 사용할 수 있읍니다.
     }

     getMyClass(): string {// 함수를 이용하여 전역변수 aa를 리턴
         return this.aa;
     }
     get alphabet() { // 게터함수를 이용하여 전역변수 bb를 리턴
         return this.bb;
     }
}

클래스 상속

자식 Class에서 부모 Class를 상속함

class Parents{
     constructor() {    }

}

class MyClass extends Parents {
     constructor() {
         super( "인자1", "인자2");  // super메서드는 꼭 나와야 함
     }
}

protected

protected 가 지정되어 있는 메서드나 클래스는 클래스 외부에서 접근이 불가함.
단지 클래스 내부나 상속받은 자식 클래스에서만 접근이 가능함

  • protected getName(): string { }
  • protected constructor() { }

인터페이스

인터페이스에 선언된 변수나 메서드의 사용을 구현 클래스에 강제할 수 있음.

interface ifParents {
     // 메서드나 변수 정의
}

interface ifChild extends ifParents {
     // 메서드나 변수 정의
}

class MyClass implements ifChild  {
     // 인터페이스에 정의된 메서드나 변수를 추가한 후 구현
     // 클래스 고유의 메서드나 변수를 추가한 후 구현
}

클래스 상속

추상클래스는 구현과 강제를 동시에 수행하는 클래스로 abstract 키워드를 사용하여 선언함.
추상 메서드와 구현 메서드를 나누어서 정의 함

abstract class SmallAnimals {
     abstract 추상 메서드(): string;
     구현 메서드(): string {
         // 추상 메서드를 이용하여 구현 메서드의 로직을 추가
     }
}

class Mouse extends SmallAnimals {
     // 추상 클래스에 정의된 추상 메서드를 구현
     // 클래스 고유의 메서드나 변수를 추가
}

Similar Posts

  • 몽고DB의 짝궁 Robo 3T 설치하기

    이전에 시놀로지 나스의 도커에서 몽고DB를 설치하는 방법을 포스팅했습니다. 시놀로지 도커로 몽고DB 설치하는 방법 바로가기 시놀로지 도커로 몽고 익스프레스(mongo-express) 설치하기 바로가기 이번에는 Mongo-express처럼 웹브라우저에서 보는 것이 아니라 설치형 몽고DB 관리 툴을 설치하고 연결하는 방법에 대해서 포스팅하려고 합니다. Robo 3T 설치하기 Robo 3T는 설치형 오픈소스 몽고DB 관리 툴입니다. 먼저 해당 사이트로 이동합니다. Robo 3T 다운로드 받기 Robo […]

  • 시놀로지 나스 DS918+ NVMe SSD 캐쉬 업그레이드하는 방법

    노트북의 SSD를 업그레이드하고 나서 남은 128GB NVMe SSD를 DS918+의 캐쉬 SSD로 사용해 보려고 합니다. 설치는 상당히 쉽습니다. SSD 캐시 장착 준비하기 일단 기존의 DSM의 저장소관리자 화면을 보겠습니다. HDD/SDD 메뉴를 보면 저는 HDD가 3개 밖에 없어서 3개가 표시되어 있습니다. SSD 캐시 메뉴를 보게 되면 사용할 SSD가 없다고 표시 되고 있습니다. 먼저 SSD 캐시 어드바이저를 보면 현재 […]

  • 일렉트론(Electron) 소개 및 사용법

    일렉트론(Electron)은 Node.js를 기반으로 javascript, html, css를 사용하여 데스크탑 애플리케이션을 만드는 플랫폼입니다. 이것은 GitHub에서 모던 에디터인 Atom 에디터를 만들면서 공개한 오픈소스입니다. 웹개발자의 입장에서 보면 데스크탑 APP을 개발하는데 있어서 진입장벽이 낮을 뿐만아니라 크로스플렛폼까지 지원하여 윈도우즈, Mac OS X, 리눅스 등 다양한 OS에서 동일하게 사용할수 있는 장점이 있어서 인기가 많습니다. 일렉트론(Electron)은 간단하게 생각하면 웹브라우저 안에 Node.js를 포함시킨 것이라고 […]

  • 유튜버 진출의 최대 고민이였던 더빙을 해결해 줄 네이버 클로바 더빙 출시

    한때 유튜버를 꿈꿨으나 그지같은 목소리 때문에 포기했어야 했던 꿈을 이제 다시한번 불태워 볼 기회가 생겼습니다. 네이버에서 출시한 클로바 더빙이 그 꿈을 실현해줄 무기입니다. 이번에 야심차게 출시를 하고 현재는 알리기 위한 이벤트를 진행중에 있는데요. 예전의 기계적인 톤의 TTS보다 정말 한단계 진일보한, 느낌있는 목소를 들려주고 있습니다. 또한 동영상과 매칭을 시켜주고 있어서 더욱 활용도가 있어 보입니다. 클로바 더빙 […]

  • 발렛파킹도 로봇이!! stan

    저희 아파트는 지은지 벌써 15년이 넘고 있어서 그런지 주차공간이 매우 협소한 편입니다. 항상 문콕테러를 걱정하면서 주차를 하게 됩니다. 물론 빨리 법이 바뀌어서 주차영역이 코스트코 만큼이나 넓게 지정이 되어야 겠지만 그럴경우 발생하는 또다른 문제는 주차할 수 있는 차량의 수가 상대적으로 줄어든다는데 있습니다. 이번에 이런문제를 말끔히 해결해 줄 발렛파킹을 해주는 로봇이 나와서 소개를 할까 합니다. 스탠리 로보틱스(Stanley […]

  • 구글 스프레드시트에서 연속데이터 복사하는 방법

    엑셀에서는 사용방법을 아는데 구글 스프레드시트에서는 사용방법이 애매한 경우가 있습니다. 물론 알고 나면 쉽지만 모르면 상당히 어려운 기능 입니다. 저도 이것 때문에 고생하다가 겨우 알게 되었기에 블로그를 통해 공유를 하려고 합니다. MS엑셀에서 연속데이터 복사하기 MS 엑셀에는 상당히 쉬운면서 단순 노가다를 극적으로 해결해 주는 상당히 유용한 기능이 있는데요. 1~10번까지 순차적으로 자동 입력, 또는 날짜를 순차적으로 연속해서 데이터를 […]

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다