[TS] 제네릭 인터페이스와 타입 별칭
TIL
제네릭 인터페이스제네릭은 인터페이스에도 적용할 수 있다. 인터페이스에 타입 변수를 선언하여 사용하면 된다.interface KeyPair { key: K; value: V;} 그리고, 변수의 타입으로 정의하여 사용할 수 있다.let keyPair: KeyPair = { key: "key", value: 0,};let keyPair2: KeyPair = { key: true, value: ["1"],};이때 주의해야 할 점은, 제네릭 인터페이스는 제네릭 함수와 달리 변수의 타입으로 정의할 때 반드시 와 함께 타입 변수에 할당할 타입을 명시해야 한다는 것이다.제네릭 함수는 매개변수에 제공되는 값의 타입을 기준으로 타입 변수를 추론할 수 있지만, 인터페이스는 마땅히 추론할 수 있는 값이 없기 때문이..
[TS] 인터페이스로 구현하는 클래스 (implements)
TIL
타입스크립트의 인터페이스는 클래스의 설계도 역할을 할 수 있다.다음과 같이 인터페이스를 이용해 클래스에 어떤 필드들이 존재하고, 어떤 메서드가 존재하는지 정의할 수 있다.interface CharacterInterface { name: string; moveSpeed: number; move(): void;}class Character implements CharacterInterface { constructor( public name: string, public moveSpeed: number, ) {} move(): void { console.log(`${this.moveSpeed} 속도로 이동!`); }} 인터페이스 CharacterInterface는 name, move..
[TS] 인터페이스 확장
TIL
인터페이스 확장이란 하나의 인터페이스를 다른 인터페이스들이 상속받아 중복된 프로퍼티를 정의하지 않도록 도와주는 문법이다. [TS] 인터페이스인터페이스(Interface)란 타입 별칭과 동일하게 타입에 이름을 지어주는 또 다른 문법으로,상속, 합침 등의 특수한 기능을 제공하기 때문에 객체의 구조를 정의하는 데 특화되어 있다.// 타입 별칭tdevmark.tistory.com interface 타입이름 extends 확장_할_타입이름이렇게 extends 뒤에 확장할 타입의 이름을 정의하면 해당 타입에 정의된 모든 프로퍼티를 다 가지고 오게 된다.interface Animal { name: string; color: string;}interface Dog extends Animal { isBark: bo..
[TS] 인터페이스
TIL
인터페이스(Interface)란 타입 별칭과 동일하게 타입에 이름을 지어주는 또 다른 문법으로,상속, 합침 등의 특수한 기능을 제공하기 때문에 객체의 구조를 정의하는 데 특화되어 있다.// 타입 별칭type A = { a: string; b: number;};// 인터페이스interface A { a: string; b: number;};타입 별칭과 인터페이스는 유사해 보이지만, 인터페이스는 객체 타입을 정의하는 데 더 특화된 기능을 제공한다. 인터페이스의 기본 기능선택적 프로퍼티와 읽기 전용 프로퍼티타입 별칭과 마찬가지로 선택적 프로퍼티와 읽기 전용 프로퍼티를 정의할 수 있다.선택적 프로퍼티프로퍼티에 ?를 붙여 선택적 프로퍼티로 만들면 생략 가능하다.interface Person { name:..