TypeScript 10

classes_2

readonly properties class Person{ public readonly name:string = 'Mark'; private readonly country:string="Korea"; //public 이여도 hello()에서 변경불가 public constructor(private _name:string,private age:number){ this.country="Korea"; // 초기화 되는 영역에서만 값을 세팅할 수 있다. } hello() { this.country = "China"; //readonly가 붙어있어 변경 불가 } } const p1 = new Person("Mark",39); console.log(p1.name); p1.name="Woongjae"; //read..

TypeScript 2021.10.28

Classes_1

object를 만드는 blueprint 클래스 이전에 objet를 만드는 기본적인 방법은 function new를 이용해 class를 만듬 OOP를 위한 초석, TypeScript 에서는 클래스도 사용자가 만드는 타입의 하나 class Person{ //클래스 이름은 첫글자 대문자 es6 기준으로 똑같이 동작 name; constructor(name:string){ this.name=name; } } const p1 = new Person("Mark"); //class의 결과가 p1에 할당 console.log(p1); new 를 이용하여 class를 통해 object를 만들 수 있다. this 를 이용해서 만들어진 object를 가르킬 수 있다. JS 로 컴파일 되면 es5 의 경우 function으로..

TypeScript 2021.10.28

TS Compiler

compilation context 컴파일 컨텍스트는 기본적으로 TypeScript가 유효한 것과 그렇지 않은 것을 결정하기 위해 구문 분석하고 분석하는 파일 그룹화에 대한 멋진 용어입니다. 어떤 파일에 대한 정보와 함께 컴파일 컨텍스트에는 사용 중인 컴파일러 옵션에 대한 정보가 포함됩니다. 이 논리적 그룹을 정의하는 좋은 방법(프로젝트라는 용어도 사용하고 싶습니다)은 tsconfig.json 파일을 사용하는 것입니다. tsconfig schema 최상위 프로퍼티 complieOnSave, extends, compileOptions, files, include, exclude, references, typeAcquistion, tsNode [complieOnSave] true / false (defaul..

TypeScript 2021.10.27

타입 시스템

타입 시스템 컴파일러에게 사용하는 타입을 명시적으로 지정하는 시스템과 컴파일러가 자동으로 타입을 추론하는 시스템 2가지가 있다. 타입스크립트는 타입을 명시적으로 지정할 수 있고 타입을 지정하지 않으면 컴파일러가 자동으로 타입을 추론합니다. 타입이란 해당 변수가 할 수 있는 일을 결정 function f3(a){ return a*38; } //사용자가 a가 any 이기 때문에, 사용법에 밎게 문자열을 사용하여 함수를 실행 console.log(f3(10)); //380 console.log(f3('Mark')+5); //NaN 의도와 다르게 사용 nolmplicitAny 옵션 타입을 명시적으로 지정하지 않은 경우, 타입스크립트가 추론 중 `any` 라고 판단하게 되면 컴파일 에러를 발생시켜 명시적으로 지정..

TypeScript 2021.10.27

TypeScript[object, Array, Tuple, any, unknown, never, void]

object primitive type 이 아닌것을 나타내고 싶을 때 사용하는 타입 non-primitive type [not number, string, boolean, bigint, symbol, null, or undefined] //create by object literal const person1 = {name:'Mark', age:39}; //create by Object.create const person = Object.create({name:'Mark', age:39}); Array 객체 같은 타입의 요소를 모아둔 자료형 //이 방식을 자주 사용 let list:number[] = [1,2,3]; let list:(number | string )[] = [1,2,3,"4"]; //요소는..

TypeScript 2021.10.26

boolean, number, string, symbol, null & undefined

boolean let isDone:boolean = false; isDone = true; console.log(typeof isDone); //'boolean' let isOk:Boolean = true; let isNotOk: boolean = new Boolean(true); //이런식으로 사용 X number 모든 숫자는 부동 소수점 값입니다. let decimal:number = 6; //10진수 let hex: number = 0xf00d; //16진수 let binary :number = 0b1010; //2진수 let octal : number = 0o744; // 8진수 let notAnumber:number = NaN; let underscoreNum:number = 1_000_000;..

TypeScript 2021.10.26

Type [javascript, typescript], Primitive Types

let a ='Mark'; a = 39; //a가 string 이기 때문에 오류가 발생 let b:number; //변수 타입 설정 b=39; function hello( c: number) { //c는 매개변수인데 number만들어올 수 있음 } hello('mark') //string type 오류발생! TypeScript JavaScript static Types Dynamic Types 개발하는 중간에 타입 체크 런타임에 돌입해야 잘못된지 확인 //JavaScript function add(n1, n2) { if(typeof n1 !=='number' || typeof n2 !=='number') { throw new Error('Incorrect input!'); } return n1+n2; }..

TypeScript 2021.10.26

typesript 개념

type을 추가해서 javascript를 확장,강화 시킨다. 에러를 잡거나 고치는 시간을 줄여줍니다. 완전 오픈소스이다. programming language 언어이며, 전통적인compiled language 언어와는 다른점이 많아 transplie이라는 용어를 사용합니다. 자바스크립트는 interpreted language 입니다. compiled interpreted 컴파일 필요 O X 컴파일러가 필요 O X 컴파일 하는 시점 O =>컴파일 타임 X 컴파일된 결과물을 실행 코드 자체를 실행 컴파일된 결과물을 실행 코드를 실행하는 시점 O 컴파일된 결과물을 실행하는 시점 =런타임 vs code에서 처음 typescript 컴파일러를 글로벌로 설치 npm i typescript -g //-g 글로벌로 설..

TypeScript 2021.10.26