타입스크립트 문제

boyeonJ·2023년 7월 5일
0

TypeScript

목록 보기
6/12
import "./style.css";
import Hero from './interfaces/Hero';

//////////////////////////////////////////////////
// TypeScript 객체 리터럴 인터페이스 이행(implements)
//////////////////////////////////////////////////

interface Hero {
  [key: string] : string;
}

interface Hero {
  superhero : string;
  alter_ego : string;
  superPower : (gage:number) => string
}

// Hero 인터페이스를 이행할 수 있도록 타입으로 설정해봅니다.
let batman: Hero= {
  "superhero": "Batman",
  "alter_ego": "Bruce Wayne",
  superPower(gage:number):string { return `${this.superhero} 수퍼파워! 파워 게이지 ${gage}`; }
};

// Hero 인터페이스와 부합하지 않는 객체에 타입으로 설정 시, 오류 메시지가 출력되어야 합니다.
let superman = {
  "superhero": "Superman",
  "alter_ego": "Kal-El"
};

다시 봐야해..;; 인터페이스 안에서 함수정의하는 방법;;;;;;;


1. 인터페이스, 유니언타입, 인터섹션타입, 그리고 타입별칭을 사용하여 다음 문제를 해결하시오.

1) Person 이라는 인터페이스를 만드시오.
이 인터페이스는 name(string), age(number), hobby(string[])라는 프로퍼티를 가져야함

interface Person {
	name: string;
    age: number;
    hobby: string[];
}

2) Employee 라는 인터페이스를 만드시오.
이 인터페이스는 position(string), workYears(number)라는 프로퍼티를 가져야함.

interface Employee {
	position: string;
    workYears: number;
}

3) Person과 Employee 인터페이스를 합친 PersonEmployee 인터섹션 타입을 만드세요.

type PersonEmployee = Employee & Person;

4) 유니언 타입인 AnimalOrPerson을 만드시오.
이 유니언 타입은 string 또는 Person 타입을 가져야함

type AnimalOrPerson = string | Person;

5) 타입 별칭을 이용하여 AgeType이라는 타입을 만드시오.
AgeType은 숫자 또는 "unknown"이 될 수 있음

type AgeType =  number | "unknown";

2. 아래 문제를 풀어보시오

1) Vehicle 인터페이스를 만드시오.
이 인터페이스는 make (string), model (string), year (number)라는 프로퍼티를 가져야함

interface Vehicle {
	make: string;
    model: string;
    year: number;
}

2) TwoWheeler와 FourWheeler라는 두 인터페이스를 만드시오.
TwoWheeler는 type이 'motorcycle'이고, FourWheeler는 type이 'car'인 추가 프로퍼티를 가져야함

interface TwoWheeler extends Vehicle{
	type: 'motorcycle';
}
interface FourWheeler extends Vehicle{
	type: 'car';
}

3) Vehicle과 TwoWheeler 또는 FourWheeler를 결합한 VehicleType라는 인터섹션 타입을 만드시오.

type VehicleType = TwoWheeler | FourWheeler

//만약에 위에서 상속안해주면
type VehicleType = Vehicle & (TwoWheeler | FourWheeler)

4) VehicleType의 type 프로퍼티를 기반으로 하는 유니언 타입 VehicleUnionType을 만드시오.

type VehicleUnionType = VehicleType["type"];

5) 타입 별칭을 이용하여 MakerType이라는 타입을 만드시오.
MakerType은 string 또는 null이 될수있음

type MakerType = string | null

3. 아래 문제를 풀어보시오

1) Shape라는 이름의 인터페이스를 만들어 주시오.
이 인터페이스는 color라는 이름의 string 타입 프로퍼티를 가지고 있어야함.

interface Shape {
  color : string;
}

2) Circle이라는 이름의 인터페이스를 만들어 주시오.
이 인터페이스는 Shape 인터페이스를 상속하고, radius라는 이름의 number 타입 프로퍼티와 center라는 optional 프로퍼티를 가지고 있어야함.
center 프로퍼티는 x, y를 가지고 있고 둘다 number 타입임

interface Circle extends Shape{
  radius : number;
  center ?: {
  	x: number,
    y: number}
}

3) ShapeCollection이라는 이름의 인터페이스를 만들어 주시오.
이 인터페이스는 string 타입의 key를 가진 Shape를 value로 가지는 프로퍼티를 가질 수 있어야함

interface ShapeCollection{
  [key: string] : Shape
}

0개의 댓글