You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
자바스크립트때처럼 아직 이해도가 부족해서 (1)용어 익히기, (2)모르겠는 내용 정리를 위주로 해보겠습니다.
파일 선언
declare 라는 키워드르 변수의 타입 선언을 해줌.
인터페이스
새로운 멤버 추가가 쉽다.
클래스에 사용가능
lib.d.ts
자바스크립트 런타임에 쓰는 기본 변수들의 타입 저장해둔 파일
확장 가능하다.
함수
오버로딩해서 쓸 수 있다. (자바스크립트도 가능한지 몰랐네요.. JS에서 안써봄.)
콜러블
인터페이스 내에 () 붙은 멤버
예시
interfaceReturnString{(): string}declareconstfoo: ReturnString;constbar=foo();// bar는 문자열 타입인 것으로 추론됨
뉴어블
interfaceCallMeWithNewToGetString{new(): string}// 사용법declareconst Foo: CallMeWithNewToGetString;constbar=newFoo();// bar는 string 타입의 변수로 추론됨
타입 표명(==단언 <-> 추론)
이 챕터가 하고싶은 말 잘 이해 못했음..
신선도
이 챕터도 아직 좀 난해..
이 예제가 뭔가 핵심 같은데.. 객체 리터럴일 때 타입 검사가 좀 빡세다?
functionlogIfHasName(something: {name?: string}){if(something.name){console.log(something.name);}}varperson={name: 'matt',job: 'being awesome'};varanimal={name: 'cow',diet: 'vegan, but has milk of own species'};logIfHasName(person);// 오케이logIfHasName(animal);// 오케이logIfHasName({neme: 'I just misspelled name to neme'});// 오류: 객체 리터럴은 정의된 속성만 지정해야 함. 여기서 `neme`은 불필요.
자바스크립트때처럼 아직 이해도가 부족해서
(1)용어 익히기
,(2)모르겠는 내용 정리
를 위주로 해보겠습니다.파일 선언
declare
라는 키워드르 변수의 타입 선언을 해줌.인터페이스
lib.d.ts
자바스크립트 런타임에 쓰는 기본 변수들의 타입 저장해둔 파일
확장 가능하다.
함수
콜러블
()
붙은 멤버타입 표명(==단언 <-> 추론)
신선도
타입 가드
리터럴
읽기 전용
제네릭
타입 인터페이스
타입 호환성
Never 타입
구별된 유니온
인덱스 서명
타입 이동하기
typeof
를 이용해서 복사가능예외처리
믹스인
The text was updated successfully, but these errors were encountered: