인터페이스는 타입의 규칙을 지정하는 것입니다.
- 객체의 스펙
- 함수의 parameter (매개변수)
- 함수의 스펙, 반환 값
- 배열
- 클래스
interface를 앞에 적고 인터페이스 앞글자는 대문자로 이름을 지정합니다.
interface User {
name:string;
age:number;
}
객체의 프로퍼티 값은 선언한 인터페이스의 타입과 동일하게 해야합니다.
let person: User = {
name:'yongwoo', //string
age:33, // number
}
함수의 타입과 반환 값을 지정 할 수 있습니다.
interface login {
(username: string, password: string): boolean;
}
let loginUser: login;
loginUser = function(id: string, pw: string) {
console.log('로그인 했습니다');
return true;
}
배열의 인덱스로 접근하여 배열의 요소 타입을 지정 할 수 있습니다.
interface StringArray {
[index: number]: string;
}
let arr: StringArray = ["a", "b", "c"];
console.log(arr[0]) // 'a'
console.log(arr[1]) // 'b'
extends
를 적고 추가하고 싶은 interface
를 선언하면 타입이 복사됩니다.
interface Person {
name:string;
age:number;
}
interface Developer extends Person {
language:string;
}
let cpat : Developer = {
name:'lee',
age:12,
language: 'ts',
}