목록TypeScript (7)
솔미는 성장중
보호되어 있는 글입니다.
💻 타입 호환 서로 다른 타입이 2개 있을 때 특정 타입이 다른 타입에 포함되는지를 의미 💻 구조적 타이핑 Animals 클래스가 Dog 인터페이스를 상속받아 구현하지 않았는데도 에러가 발생하지 않는 이유는? interface Dog { name:string; } interface Animals { name:string; } let i: Dog; i=new Animals(); 구조적 타이핑 특성 때문이다!! 🌞 구조적 타이핑 이란? 타입 유형보다는 타입 구조로 호환 여부를 판별하는 언어적 특성 ex) 타입별칭과 인터페이스도 같은 타입 구조를 갖고 있다면 호환 가능 ( 속성 이름까지 일치해야 함 ) 💻 호환 가능 여부따지기 1. 객체 타입의 호환 - 타입 유형에 관계없이 동일한 이름의 속성을 갖고 있고 해..
💻 타입 가드 여러 개의 타입으로 지정된 값을 특정 위치에서 원하는 타입으로 구분하는 것 💻 타입 가드가 필요한 이유 -/-예를 들어 number | string | boolean 타입으로 지정되어있다면 세 타입 모두에서 사용할 수 있는 속성과 API만 접근 가능하다. 즉, toUpperCase, toFixed() 등의 메소드를 사용할 수 없다. 해결 방법) 1. 타입 가드 사용하기 (다음 섹션에서 자세히 설명) 2. 타입 단언으로도 해당 문제를 해결 가능 //예시 function updateInput (textInput: number | string | boolean) { (textInput as number).toFixed(3); } 하지만 문제점! - 실행 시점의 에러를 막을 수 없다. - 타입 단..
💻 타입 단언 : 타입 추론에 기대지 않고 개발자가 직접 타입을 명시해 해당 타입으로 강제하는 것 💻 타입 단언 문법 1. 대상 원시 값 & 변수 & 함수 호출 결과 ... 사용 예시) 빈 객체 선언 후 속성을 추가했을 때 타입에러 발생. 이때 해당 속성을 담은 인터페이스로 타입 단언 2. 타입 단언 중첩 - 여러번 중첩 가능 3. 주의할 점 - as는 변수명에 사용 불가 ex) let num as number = 10; (x) - 호환되지 않는 데이터 타입으로는 단언 불가 ex) let num = 10 as string; (x) 💻 null 아님 보장 연산자 : ! 1. 대상 null이 들어와 오류가 발생하는 것을 방지하기 위해 함수 내에 null 값 체크 코드를 작성해줘야했다. 예시) if( book..
제네릭은 카멜레온 같은 아이라고 생각하면 된다. 받은 타입을 그대로 반환한다! 라는 컨셉 📌 기본 문법 //함수 function testGeneric(text: T):T{ return text; } testGeneric('hello world'); //hello world //위 코드는 function testGeneric(text: string):string { } 과 동일하다. testGeneric(3); //3 //인터페이스 interface Dropdown{ value: T; selected: boolean; } let product: Dropdown; let stock: Dropdown; let address: Dropdown; 📌 언제 사용하면 좋을까? 함수의 역할과 동작은 같은데 타입을 여러..