type alias vs interface

Seulyi Yoo·2022년 7월 18일
0

TypeScript

목록 보기
39/42
post-thumbnail

Function

// type alias
type EatType = (food: string) => void;

// interface
interface IEat {
	(food: string): void;
}

Array

// type alias
type PersonList = string[];

// interface
interface IPersonList {
	[index: number]: string;
}

intersection

interface ErrorHandling {
	success: bloolean;
	error?: { message: string };
}

interface ArtistsData {
	artists: { name: string }[];
}

// type alias
type ArtistsResponseType = ArtistsData & ErrorHandliing;

// interface
interface IArtistsResponse extends ArtistsData, ErrorHandling {}

let art: ArtistsResponseType;
let iar: IArtistsResponse;

union types

interface Bird {
	fly(): void;
	layEggs(): void;
}

interface Fish {
	swim(): void;
	layEggs(): void;
}

type PetType = Bird | Fish;

interface IPet extends PetType {} 
// 인터페이스는 개체 형식 또는 정적으로 알려진 멤버가 포함된 개체 형식의 교집합만 확장할 수 있습니다.ts(2312)

class Pet implements PetType {}
// 클래스는 개체 형식 또는 정적으로 알려진 멤버가 포함된 개체 형식의 교집합만 구현할 수 있습니다.ts(2422)

Declaration Merging - interface

interface MergingInterface {
	a: string;
}

interface MergingInterface {
	b: string;
}

let mi: MergingInterface;
mi.

// 'mi' 변수가 할당되기 전에 사용되었습니다.ts(2454)

Declaration Merging - type alias

type MergingType = {
  a: string;
};
// 'MergingType' 식별자가 중복되었습니다.ts(2300)

type MergingType = {
  b: string;
};
// 'MergingType' 식별자가 중복되었습니다.ts(2300)
profile
성장하는 개발자 유슬이 입니다!

0개의 댓글