인터페이스 타입(interfaxe types)
TypeScript에서 인터페이스는 함수, 클래스에서 사용할 수 있다.
아래의 코드는 number 타입의 매개변수와 string 값을 반환하는 getParam() 함수이다.
// 일반 함수
function getParam(val: number): string {
return "매개변수의 값: " + val;
}
// 화살표 함수
let getParam = (val: number): string => {
return "매개변수의 값: " + val;
}
(val: number)는 getParam() 함수의 매개변수를 나타낸다. 매개변수의 이름을 val로 설정하였고 타입은 number로 정의한다. 소괄호 뒤의 : string는 getParam() 함수의 반환 타입을 나타낸다.
타입스크립트는 함수의 반환 타입을 자동으로 추론하기 때문에 아래와 같이 함수의 반환 타입을 생략할 수 있다.
// 일반 함수
function getParam(val: number) {
return "매개변수의 값: " + val;
}
// 화살표 함수
let getParam = (val: number) => {
return "매개변수의 값: " + val;
}
만약, 함수가 값을 반환하지 않으면 반환 타입을 void로 정의한다.
function pringVal(val: number): void {
console.log("매개변수의 값: " + val);
}
타입스크립트에서 함수의 반환 타입을 생략할 수 있으므로 void 타입도 생략 가능하다.
function pringVal(val: number) {
console.log("매개변수의 값: " + val);
}
interface Animal {
makeSound(): void
}
class Dog implements Animal {
makeSound(): void {
console.log("멍멍");
}
}
interface Animal {
makeSound(): void
}
interface Dog extends Animal {
speed: number
}
class Bulldog implements Dog {
makeSound(): void {
console.log("멍멍");
}
}
interface Counter {
(start: number): string;
interval: number;
reset(): void;
}
function getCounter(): Counter {
let counter = function (start: number) {} as Counter;
counter.interval = 123;
counter.reset = function () {};
return counter;
}
let c = getCounter();
c(10);
c.reset();
c.interval = 5.0;
위의 코드를 보면 Counter
라는 인터페이스는 getCounter
함수의 타입을 선언함과 동시에 counter
변수 안에 타입을 선언한 것을 알 수 있다.