1. Class 접근 가능한 위치 구분 선언한 클래스 내 상속받은 클래스 내 인스턴스 public o o o protected o o x private o x x public: 모든 클래스에서 접근 가능 protected: 해당 클래스와 자식 클래스에서 접근 가능 private: 해당 클래스 내에서만 접근 가능하며, 자식 클래스에서도 접근 불가 class Player { constructor( private firstName:string, private lastName:string, public nickname:string ){} } const mi = new Player("mi", "ma", "go") mi.firstName // error private라 mi.nickname // "go" class..
IT/TypeScript
call signatures 코드에 마우스 올리면 나온다. Call(=Function) Signature란 함수의 매개변수와 반환 값의 타입을 모두 type으로 미리 선언하는 것이다. 타입을 만들고 함수가 어떻게 작동하는 지 서술 가능하다. // 기존 함수 const add = (a:number, b:number) => a+b // 함수의 call signature 타입 생성 type Add = (a:number, b:number) => number; // 위에 타입 지정으로 타입이 number라 선언 안 해도 됨 const add2:Add = (a,b) => a+b // 함수의 call signature 길게 작성하는 방법 type Add = {(a:number, b:number) : number} o..
Array let a : number[] = [1]; let b : string[] = []"li"]; let c : boolean[] = [true]; let d : array = []; // error let e = [1, 2]; // 타입을 지정하지 않아도 타입스크립트가 추론함 readonly 요소들을 읽기 전용으로 만들 수 있음 type Age = number type Name = string type Info = { readonly name:Name, // readonly가 앞에 붙으면 수정 불가능 age?:Age } const playerMaker = (name:string) : Info => ({name}); const mi = playerMaker("mi") mi.age = 10; mi.n..
타입스크립트를 많이 사용하는 이유 1. 버그 예방 자바스크립트의 버그 중 15%를 타입스크립트의 사용으로 미리 예방할 수 있다는 연구가 있다고 합니다. 자바스크립트는 선언할 때 타입을 지정해주지 않기 때문에 동작하면서 언제 나도 모르게 형변환이 되어 있을 수도 있고, 그런 부분으로 인해 예기치 않은 버그가 발생할 수도 있습니다. 심지어 인터프립터 언어 특성상 그런 버그들을 찾는 것 조차 쉽지 않죠. 컴파일 과정이 없기 때문에 에러를 출력하지 않고 실행되기 때문입니다. 타입스크립트를 사용한다고해서 모든 버그를 완전히 막을 수 있는 것은 아니지만 적어도 컴파일단계에서 타입관련 에러는 막을 수 있습니다. 예를들어, strictNullCheck 옵션을 true로 해놨다면 객체/null/undefined가 할당될..