TypeScript)interface(gender? : number;)

Songss·2025년 1월 12일

TypeScript

목록 보기
2/10
interface Student {
  id: number;
  name: string;
  age?: number;
  gender: string;
}

// 매개변수(id)는 숫자 타입
// setStudent함수의 반환 타입은 Student타입
function setStudent(id: number): Student {
  const student: Student = {
    id: id,
    name: 'kim',
    gender: 'male',
  };
  return student;
}

const me = setStudent(1);
console.log(me); // { id: 1, name: 'kim', gender: 'male' }

interface Student{}age 뒤에 ? 를 추가하여
값이 있을 수 도 없을 수 도 있다는 로직 (선택적 속성) 으로 바꿀 수 있다.

인터페이스를 사용해서 클래스를 만들기

class playWorkout implements WorkOut {
  id: number;
  name: string;
  region: string;
  requipment?: string;

  // 생성자를 추가하여 필수 속성 초기화
  constructor(id: number, name: string, region: string, requipment?: string) {
    this.id = id;
    this.name = name;
    this.region = region;
    this.requipment = requipment;
  }

  // setPlay 메서드 정의
  setPlay(name: string): void {
    this.name = name;
    console.log(`Workout: ${this.name}`);
  }

  // getPlay 메서드 정의 (선택적 메서드)
  getPlay?(): void {
    console.log(`Current Workout: ${this.name}`);
  }
}

// 객체 생성 시 필수 값 제공
const squatWorkout = new playWorkout(1, 'Squat', 'Legs', 'Barbell');
squatWorkout.setPlay('Deadlift');
squatWorkout.getPlay?.();
  • 인터페이스는 string이나 number 타입처럼 데이터 타입으로 사용 가능
  • 선택적 프로퍼티로 지정하려면 속성값 뒤에 ?를 붙여준다.
  • 메소드도 인터페이스 내에서 선언 가능
  • 인터페이스를 클래스에 상속할 수 있다.
  • implements클래스가 특정 인터페이스를 구현(implements)하도록 강제하는 키워드이다.
    즉 playWorkout클래스는 WorkOut인터페이스에 정의된 속성메서드를 반드시 구현해야한다.

0개의 댓글