훨씬 안정적이고 에러가 덜 난다. 자바스크립트를 타입스크립트로 바꾸면 안정성이 늘어난다.안정성이 늘어난다는 것은 에러가 줄어들고 책임을 덜 져도 된다. 그러나 타입스크립트는 자바스크립트보다 자유도는 줄어든다.typescript는 최종적으로 javascript로 변환된다
변수 뒤에 타입을 지정하는데 대문자는 안되고 소문자만 된다.타입을 지웠을 때도 완변한 자바스크립트 코드여야 한다.지울 수 있는 부분이 타입 자리이다. 여기서는 (x: number, y: number) => number 이다.type으로 타입을 선언하는 방식 타입 애일
빈배열을 만들면 never라는 타입이 생긴다.array에서는 아무타입이 올 수 없다. 따라서 반드시 타입을 설정 해야 함.뒤에 느낌표( ! )는 head태그가 null이나 undefine이 아니라는 것을 보증하는 방식 null이 사라짐 느낌표 비추누가 태그 이름을 바꿀
enum은 언제 쓰는가?? 여러개의 변수들을 하나의 그룹으로 묶고싶을때 사용하기는 하는데 개인적으로는 일반 객체를 많이 사용 할 것 같다..enum과 객체의 차이점은 enum은 js변환 될때 사라지고 객체는 사라지지 않는다. js를 남겨야 될지 안남겨야 될지 고민일때는
string또는 number라서 문자나 숫자 암거나 가능 문제는 타입추론도 제대로 하지 못한다.const result: string | number = add(1,2); //값이 number인데 이것이 착각해서 string으로 인식할수있다.& 일 때는 모든 속성이 다
타입 애일리어스의 상속인터페이스의 상속type을 사용할지 interface를 사용할지 정하면됨.interface를 많이 사용함.인터페이스의 다른 특징interface는 같은 이름으로 여러번 선언 할 수가있는데 선언 할 때마다 합쳐진다.이런 합쳐지는 특성 때문에 라이브러
A는 넓은 범위 이고 B는 좁은 법위이다. B가 A로 대입 가능하지만 A는 B로 대입이 불가능 하다.C는 B와 비교하면 C가 B보다 더 좁은 타입이다. C는 string과 number 둘다 만족해야 하기 때문에 교집합이라고 생각하면 더 좁은 범위이다.위의 객체 A,B와
잉여속성 검사 변수 따로 빼지 않음객체 리터럴에서는 잉여 속성 검사라는게 있다.잉여 속성 검사로 인하여 interface A에는 a속성만 들어있는데 obj1에 b속성을 넣었더니 에러가 발생했다.잉여속성 검사 변수 따로 뺀 버전 중간에 obj를 따로 변수로 빼면 처음에
const b: unknown = a.talk();unknown은 지금 당장 타입을 모르겠다라는 뜻.unknown은 나중에 타입을 지정해서 쓸 수 있다. unknown도 없는게 좋다..const b: any = a.talk();any를쓰면 타입을 포기하겠다 라는 뜻
매개변수 a가 number 또는 string이므로 이것을 if문을 사용하여 어떤 타입인지 지정해야 한다. 타입스크립트가 if문으로 number로 지정 하였으면 else까지 알아서 타입 지정을 해준다.원시값일 때는 typeof를 사용한다.배열인지 아닌지 구별하기 위해서
위의 코드에서 readonly라는 속성 때매 aaaa.a = '123';으로 코드를 작성 했을 때 123으로 바뀌어야 하는데 바뀌지 않는다 읽기 전용 속성속성을 실수로 바꿀 때 이를 막아 줄 수 있다.어떤 속성이든 상관 없고 값이 모두 string이였으면 좋겠다면 일일