1. 사용 이유
let user:object;
user = {
name : 'lee',
age: '25'
}
console.log(user.name)
- object에는 특정 속성 값에 대한 정보가 없기 때문에 interface를 사용한다.
2. Interface 형태
type Score = 'A' | 'B' | 'C' | 'D'
interface User {
name: string;
age: number;
gender?: string;
readonly birth: number;
[grade:number] : Score;
}
let user : User = {
name: 'lee',
age : 25,
birth: 0628,
1 : 'A',
2 : 'B',
3 : 'F'
}
user.age = 10;
user.birth = 1225
console.log(user.age)
- optional property는 ?를 붙여서 사용한다.
- readonly property는 생성할 때만 할당이 가능하고 이후에는 수정을 할 수 없다.
3. Interface로 함수 정의
interface Add {
(num1: number, num2: number):number;
}
const add : Add = function(x, y) {
return x + y;
}
interface IsAdult {
(age: number):boolean;
}
const a:IsAdult = (age) => {
return age > 19;
}
4. Interface로 클래스 정의
interface Car {
color: string;
buyYear: number;
start():void;
}
class Benz implements Car {
color : "black";
buyYear: 2021;
start() {
console.log ('부릉');
}
}
class Benz implements Car {
color;
buyYear: 2021;
constructor(c:string) {
this.color : c;
}
start() {
console.log ('부릉');
}
}
const myCar = new Benz('Black');
참고
https://youtu.be/OIMPLNICzoc