1. 타입 별칭 이란
타입 별칭은 특정 타입이나 인터페이스를 참조할 수 있는 타입 변수를 의미합니다
// string 타입을 사용할 때
const name: string = 'capt';
// 타입 별칭을 사용할 때
type MyName = string;
const name: MyName = 'capt';
//interface 레벨의 복잡한 타입도 가능
type Developer = {
name: string;
skill: string;
}
//타입 별칭에 제네릭도 사용할 가능
type User<T> = {
name: T
}
2. type vs interface
type 진영
타입스크립트에서 type과 interface는 객체를 선언할 때 매우 유사한 구조입니다. 논란의 여지가 있지만 대부분의 경우 일관되게 type을 사용하고 다음 중 하나에 해당하는 경우에만 interface를 사용하는 것이 좋습니다.
- interface의 "merging" 기능을 활용하고 싶을 때.
- 클래스/인터페이스 계층을 포함하는 OO 스타일 코드를 가지고 있을 때.
위의 경우가 아니면, 항상 더 다용도적인 type을 사용하면 코드가 더 일관성 있게 됩니다.
(번역)더 좋은 타입스크립트 프로그래머로 만드는 11가지 팁
원문 : https://dev.to/zenstack/11-tips-that-help-you-become-a-better-typescript-programmer-4ca1타입스크립트를 배우는 것은 종종 재발견의 여정입니다. 여러분들의 타입스크립트에 대한 첫인상은
velog.io
interface 진영
타입 별칭과 인터페이스의 가장 큰 차이점은 타입의 확장 가능 / 불가능 여부입니다. 인터페이스는 확장이 가능한데 반해 타입 별칭은 확장이 불가능합니다. 따라서, 가능한 한 type 보다는 interface로 선언해서 사용하는 것을 추천합니다.
타입 별칭 | 타입스크립트 핸드북
타입 별칭 (Type Aliases) 타입 별칭은 특정 타입이나 인터페이스를 참조할 수 있는 타입 변수를 의미합니다. 예를 들면 아래와 같습니다. 위와 같이 string, number와 같은 간단한 타입 뿐만 아니라 inter
joshua1988.github.io
내 생각
타입스크립트에서 `type`과 `interface`는 모두 타입 정의를 위해 사용되는 기능입니다. 각각의 사용 시나리오는 다음과 같습니다.
type 사용 시나리오:
- 새로운 타입을 정의하고 싶을 때 사용합니다.
- 유니온 타입(Union types), 인터섹션 타입(Intersection types), 튜플 타입(Tuple types) 등의 복잡한 타입을 정의할 때 유용합니다.
- 타입의 조건부 유형(Conditional types)을 사용하여 타입을 조작하고 싶을 때 사용합니다.
- 리터럴 타입(Literal types)을 정의하고자 할 때 사용합니다.
예시:
type Point = {
x: number;
y: number;
};
type Color = 'red' | 'blue' | 'green';
type Coordinates = [number, number];
type PartialPoint = Partial<Point>; // 모든 속성이 선택적인 타입
type CustomType<T> = T extends string ? string : number; // 타입의 조건부 유형 사용
interface 사용 시나리오:
- 클래스나 객체의 구조를 정의하고, 해당 구조를 구현하는 것에 중점을 둘 때 사용합니다.
- 클래스나 객체의 멤버(프로퍼티, 메서드)의 타입을 명시하고, 해당 멤버들에 대한 구현을 요구하고 싶을 때 사용합니다.
- 타입 확장(extends)을 통해 인터페이스를 상속받거나 구현할 수 있습니다.
- 동일한 이름의 인터페이스를 선언하면, 자동으로 병합(merge)됩니다.
예시:
interface Point {
x: number;
y: number;
}
interface Shape {
color: string;
draw(): void;
}
interface Circle extends Shape {
radius: number;
}
interface Square extends Shape {
sideLength: number;
}
class MyCircle implements Circle {
color: string;
radius: number;
constructor(color: string, radius: number) {
this.color = color;
this.radius = radius;
}
draw() {
console.log(`Drawing a ${this.color} circle with radius ${this.radius}.`);
}
}
일반적으로 type과 interface는 서로 유사한 기능을 제공하지만, 몇 가지 차이점이 있습니다. 예를 들어, type은 유니온 타입과 인터섹션 타입 등의 고급 타입 기능을 더 많이 제공하며, interface는 타입 확장과 병합 등의 기능이 강력합니다. 따라서 사용 시나리오에 따라 선택하면 됩니다. 대부분의 경우에서 interface를 사용하는 것이 좋지만, type은 복잡한 타입 정의나 타입 조작이 필요한 경우에 유용합니다.
'기억보단 기록을 > Typescript' 카테고리의 다른 글
[Typescript] Section 07. Enum (0) | 2023.05.20 |
---|---|
[Typescript] Section 06. 연산자를 이용한 타입 정의 (0) | 2023.05.20 |
[Typescript] Section 04. 인터페이스 (0) | 2023.05.20 |
[Typescript] Section 03. 기본타입 (0) | 2023.05.20 |
[Typescript] Section 02. 타입스크립트 시작하기 (1) | 2023.05.20 |
1. 타입 별칭 이란
타입 별칭은 특정 타입이나 인터페이스를 참조할 수 있는 타입 변수를 의미합니다
// string 타입을 사용할 때
const name: string = 'capt';
// 타입 별칭을 사용할 때
type MyName = string;
const name: MyName = 'capt';
//interface 레벨의 복잡한 타입도 가능
type Developer = {
name: string;
skill: string;
}
//타입 별칭에 제네릭도 사용할 가능
type User<T> = {
name: T
}
2. type vs interface
type 진영
타입스크립트에서 type과 interface는 객체를 선언할 때 매우 유사한 구조입니다. 논란의 여지가 있지만 대부분의 경우 일관되게 type을 사용하고 다음 중 하나에 해당하는 경우에만 interface를 사용하는 것이 좋습니다.
- interface의 "merging" 기능을 활용하고 싶을 때.
- 클래스/인터페이스 계층을 포함하는 OO 스타일 코드를 가지고 있을 때.
위의 경우가 아니면, 항상 더 다용도적인 type을 사용하면 코드가 더 일관성 있게 됩니다.
(번역)더 좋은 타입스크립트 프로그래머로 만드는 11가지 팁
원문 : https://dev.to/zenstack/11-tips-that-help-you-become-a-better-typescript-programmer-4ca1타입스크립트를 배우는 것은 종종 재발견의 여정입니다. 여러분들의 타입스크립트에 대한 첫인상은
velog.io
interface 진영
타입 별칭과 인터페이스의 가장 큰 차이점은 타입의 확장 가능 / 불가능 여부입니다. 인터페이스는 확장이 가능한데 반해 타입 별칭은 확장이 불가능합니다. 따라서, 가능한 한 type 보다는 interface로 선언해서 사용하는 것을 추천합니다.
타입 별칭 | 타입스크립트 핸드북
타입 별칭 (Type Aliases) 타입 별칭은 특정 타입이나 인터페이스를 참조할 수 있는 타입 변수를 의미합니다. 예를 들면 아래와 같습니다. 위와 같이 string, number와 같은 간단한 타입 뿐만 아니라 inter
joshua1988.github.io
내 생각
타입스크립트에서 `type`과 `interface`는 모두 타입 정의를 위해 사용되는 기능입니다. 각각의 사용 시나리오는 다음과 같습니다.
type 사용 시나리오:
- 새로운 타입을 정의하고 싶을 때 사용합니다.
- 유니온 타입(Union types), 인터섹션 타입(Intersection types), 튜플 타입(Tuple types) 등의 복잡한 타입을 정의할 때 유용합니다.
- 타입의 조건부 유형(Conditional types)을 사용하여 타입을 조작하고 싶을 때 사용합니다.
- 리터럴 타입(Literal types)을 정의하고자 할 때 사용합니다.
예시:
type Point = {
x: number;
y: number;
};
type Color = 'red' | 'blue' | 'green';
type Coordinates = [number, number];
type PartialPoint = Partial<Point>; // 모든 속성이 선택적인 타입
type CustomType<T> = T extends string ? string : number; // 타입의 조건부 유형 사용
interface 사용 시나리오:
- 클래스나 객체의 구조를 정의하고, 해당 구조를 구현하는 것에 중점을 둘 때 사용합니다.
- 클래스나 객체의 멤버(프로퍼티, 메서드)의 타입을 명시하고, 해당 멤버들에 대한 구현을 요구하고 싶을 때 사용합니다.
- 타입 확장(extends)을 통해 인터페이스를 상속받거나 구현할 수 있습니다.
- 동일한 이름의 인터페이스를 선언하면, 자동으로 병합(merge)됩니다.
예시:
interface Point {
x: number;
y: number;
}
interface Shape {
color: string;
draw(): void;
}
interface Circle extends Shape {
radius: number;
}
interface Square extends Shape {
sideLength: number;
}
class MyCircle implements Circle {
color: string;
radius: number;
constructor(color: string, radius: number) {
this.color = color;
this.radius = radius;
}
draw() {
console.log(`Drawing a ${this.color} circle with radius ${this.radius}.`);
}
}
일반적으로 type과 interface는 서로 유사한 기능을 제공하지만, 몇 가지 차이점이 있습니다. 예를 들어, type은 유니온 타입과 인터섹션 타입 등의 고급 타입 기능을 더 많이 제공하며, interface는 타입 확장과 병합 등의 기능이 강력합니다. 따라서 사용 시나리오에 따라 선택하면 됩니다. 대부분의 경우에서 interface를 사용하는 것이 좋지만, type은 복잡한 타입 정의나 타입 조작이 필요한 경우에 유용합니다.
'기억보단 기록을 > Typescript' 카테고리의 다른 글
[Typescript] Section 07. Enum (0) | 2023.05.20 |
---|---|
[Typescript] Section 06. 연산자를 이용한 타입 정의 (0) | 2023.05.20 |
[Typescript] Section 04. 인터페이스 (0) | 2023.05.20 |
[Typescript] Section 03. 기본타입 (0) | 2023.05.20 |
[Typescript] Section 02. 타입스크립트 시작하기 (1) | 2023.05.20 |