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

  • 코로나19 시대 라이더의 선택은?? (feat. 즈위프트)

    코로나19가 장기화 되면서 위드(with) 코로나를 강조하는 시대에 이르렀습니다. 이제는 집에서의 생활이 일상이 되어야 하는 상황에서 라이더들을 위한 재미있고 합리적인 해결책을 알게 되었습니다. 사실 이 솔루션은 코로나19 이전부터 실내 라이팅 또는 훈련을 위해 사용되었다고 하는데 지금같은 시기에 들어서면서 대중들에게 알려진 것 같습니다. 얼마 전 동상이몽이라는 프로그램에서 송창의 배우가 나오는 씬을 보고 많은 사람들이 방구석 라이딩에 관심을 […]

  • Angular CLI에서 사용하는 명령어 정리

    CLI란 Command-Line Interface의 약자로 쉽게 설명하면 DOS창에서 명령어를 써서 실행시키는 것을 말합니다. Angular CLI 명령어 Angular에서 사용하는 명령어 정리 주요 명령어 명령어 내용 ng -help CLI 도움말 확인 ng new 프로젝트명 프로젝트 생성 ng test 단위 테스트 실행 ng build 개발용 빌드 ng build -prod 프로덕션용 빌드 ng e2e 종단 테스트(end to end test) ng […]

  • [구글 스프레드시트] 한번에 연속데이터 채우기

    구글 스프레드시트는 MS의 엑셀과 같은 역활을 하는 소프트웨어입니다. MS의 엑셀은 파워풀한 기능과 성능을 가지고 오랬동안 사랑을 받고 있지만 비용을 지불해야하고 컴퓨터에 설치를 해야 사용할 수 있는 반면 구글 스프레드시트는 엑셀보다는 다소 떨어지기는 하지만 적절한 기능과 성능에 무료인데다가 인터넷과 브라우저만 있다면 어디에서든지 사용할 수 있다는 큰 장점을 가지고 있습니다. 또한 다른 사람과의 공유와 협업도 자유로워 상당히 […]

  • Gruntfile의 구조와 사용법

    Gruntjs를 사용한다고 하는것은 gruntfile.js를 다룰 줄 안다고 하는 것과 마찬가지로 gruntfile.js는 중요합니다. 중요하다고 해서 배우기가 어렵다는 말은 아닙니다. 개인의 차이는 있겠지만 보통 1~2일이면 개념을 이해 할 수 있고 1주일 정도면 구글링을 하면서 Gruntjs를 사용할 수 있을 정도로 어렵지 않습니다. 이전 포스팅에서 Gruntjs의 소개와 설치법을 작성했으니 완전 초보자이시면 이전 포스팅을 먼저 보는 것이 도움이 될것 같습니다. […]

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

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

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

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

답글 남기기

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