Typescript

Typescript

Effective Typescript - 타입과 인터페이스의 차이점 알기

타입과 인터페이스의 차이점 알기 둘의 차이점을 알기 전 비슷한 점에 대해서 알아보겠습니다. 타입은 인터페이스로 정의하든 타입으로 정의 하든 상태에는 차이가 없습니다. 인터페이스는 "타입"을 확장할 수 있으며, 타입은"인터페이스"를 확장할 수 있습니다. IStateWithPop과 TStateWithPop은 둘 다 동일합니다. 여기서 한 가지 주의할 점이 있습니다. 인터페이스는 유니온 타입 같은 복잡한 타입을 확장하지 못합니다. 복잡한타입을 확장하고 싶다면 타입과 &을 사용해야 합니다. 이제부터는 타입과 인터페이스의 다른 점들을 살펴보겠습니다. 유니온 타입은 있지만 유니온 인터페이스는이라는 개념은 없습니다. 타입은 튜플을 사용할 수 있습니다 인터페이스도 튜플을 구현할 수 있습니다. 하지만 타입튜플에서 보이는..

Typescript

Effective Typescript - 함수 표현식에 타입 적용하기

함수 표현식에 타입 적용하기 자바스크립트(그리고 타입스크립트)는 함수 "문장식" 과 함수"표현식"을 다르게 인식합니다. 타입스크립트에서는 함수 "표현식"을 사용하는 것이 좋습니다. 왜냐하면 함수의 매개변수 부터 반환값까지 전체를 함수 "타입"으로 선언하여 함수 표현식을 재사용할 수 있다는 장점이 있기 때문입니다. 예를 들어 사칙연산을 하는 4개의 함수가 있다고 가정해보겠습니다. 한눈에봐도 반복되는 코드들이 눈에 보입니다. 반복되는 함수코드들을 하나의 함수 타입으로 통합하여 쓸 수 있습니다.

Typescript

Effective Typescript - 잉여 속성 체크의 한계

여 속성 체크의 한계 타입이 명시된 변수에 객체를 할당할 때 타입스크립트는 해당 타입의 속성이 있는지,그 외의 속성이 있는지 확인합니다. 위사진에손 Room 인터페이스에는 elephant 속성이 없기때문에 존재하지 않는다고 알려주고있습니다. 하지만 객체에 타입을 명시하지않고 obj객체에 타입을 할당해보면 에러가 나지않는걸 볼 수 있습니다. obj의 타입은 {numDoors:number,ceilingHeightFt:number,elephant:string} 으로 추론되며 obj 타입은 Room 타입의 부분집합을 포함하므로 Room에 할당 가능하며 타입 체커도 통과합니다. 즉 타입스크립트가 elephant 는 string 타입이라고 추론을 한 것입니다. 첫 사진엔 타입스크립트의 "잉여 속성 체크" 라는 과정..

Typescript

Effective Typescript - 타입 단언보다는 타입 선언을 사용하기

타입 단언보다는 타입 선언을 사용하기 변수 alice 와 bob 의 타입은 Person 으로 동일합니다. 하지만 둘은 차이점이 있습니다. alice 는 타입 선언 이며 bob은 타입 단언을 수행합니다. 타입 선언은 할당되는 값이 해당 인터페이스를 만족하는지 검사합니다. 따라서 alice변수 는 name 속성이 없다고 타입스크립트가 알려주고있는것을 볼수있습니다. 하지만 타입단언을한 bob변수는 알려주지않는것을 볼수있습니다. 그이유는 타입 단언은 타입스크립트가 추론한타입이 있더라도 강제로 타입을 지정해주는것입니다. 따라서 타입체커가 오류를 발견했음에도 강제로 타입을 지정해주었기때문에 오류가 발생하지 않는것입니다. 타입 단언과 선언의 차이는 속성을 추가할 때도 마찬가지입니다. 이와같은이유로 타입 단언이 꼭 필..

avalanche-
'Typescript' 카테고리의 글 목록 (4 Page)