Web Dev Log

Typescript 기본 문법 본문

Javascript/Typescript

Typescript 기본 문법

LHR-1 2017. 12. 17. 01:36
// 1.프로그램 설치

// 2. 환경설정

// 3. 변수 선언
var a = 1;    // 전연변수
let b= 2;    // 지역변수
const c = 3  // 상수

// 4. 타입지정 형지정
var aa : number = 1;
var bb : string = 'aa';
var cc : boolean = true;

// 5. 튜플
let aaa : [number, string ];

// 6. enum 열거형
enum days { Sunday, monday, thusday };
console.log( days.Sunday );

enum days2 {sunday = 1, monday = 2 };
console.log( days.Sunday );
console.log( days[1] );


// 7. any 형 - 변수에 어떤 값이든 허용
var kk : any = "123";

// 8. 형 변환
let strValue;
strValue = 1234;

( < string > strValue).length;  // 주로 사용
(strValue as string).length;

// 9. type inference , 형 자동 지정
let a  = 1; // 자동 숫자형으로

a = 'asd';  // 이미 숫자옇으로 지정해서 문자형 값 대입 안됨

// 10. function typeing 함수 타입핑 - 함 수이의 인자와 리턴에 형지정
function f ( arg : number ) : string {
    return ' I got ' + arg;
}

// 11. 함수 type
// 함수 typeing 은 함수의 파라메터 형과 리턴 형을 지정하는 것
// 함수 type    은 타입입니다.

let pp : string;

// 함수 type 은 변수에 형을 지정하듯 하나의 완전한 타입니다.
var ff = function() {
    return a;
}

function ff2 ( a: number ) : number {
    return a;
}
             // 함수의 형을 그대로 지정
let myFunc : (a:number) => number = ff2;

// 12. Generic - 함ㅛㅜ의 타ㄹ입과 상관없이 여러 데이터 타입으로 사용 가능한것
function identity < T > ( arg : T ) : t {
    return arg;
}

identity < number > (123);

identity < string > ( 'as3' );

function oop <T> ( arg : T[] ) : number {
    return arg.length;
}

oop < number > ( [1,2,3]);

// 13. arrow function
let Animals = {
    names : ['cat','dog','pin'],
    choose : function() {
        console.log( this.names[ 1 ]);
    }
}

// this 가 무모 영역 참조할수 없다 별개의 영역으로 처리된다.
setTimeout( Animals.choose(), 100);

// this 가 부모 영역을 침조가능하게 된다
setTimeout( () => Animals.choose(), 100);

// 14. class
class Cat {
    public a: number = 12;
    private name : string;
    static name2: string = "KKK";

    constructor(theName) {
        this.name = theName;

        console.log('cat constuctror');
    }

    public call() {
        console.log('call');
    }
    
    private sound() {
        console.log( Cat.name2 + ' sounds...');
    }

    static bark() {
        console.log( Cat.name2 + ' bark...');
    }

    // getter
    get Name() : string {
        return name;
    }

    // setter
    set Name(theName) {
        this.name = theName;
    }
}

let obj = new Cat('aa'); // Cat calss constructor 호출

console.log(obj.a);
console.log(Cat.name2); // static


// 15.