250x250
Notice
Recent Posts
Recent Comments
- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- flutter
- TypeScript
- Express
- wil
- jsonwebtoken
- JavaScript
- TailwindCSS
- nginx
- await
- moment
- clipBehavior
- mongodb
- mongoose
- sequelize
- RDS
- css
- double quote
- https
- async
- Find
- MYSQL
- EC2
- atlas
- Node.js
- certbot
- AWS
- til
- findByIdAndDelete
- single quote
- Nodejs
Link
Archives
기억 휘발 방지소
[TypeScript] 인터페이스 (Interface) 본문
728x90
반응형
인터페이스(Interface)는 타입 체크를 위해 변수, 함수, 클래스에 사용할 수 있다.
ES6에서는 지원하지 않고 TypeScript에서는 지원한다.
✔️ 인터페이스
interface User {
name: string;
age: number;
}
let user: User = {
name: "Kim",
age: 20,
};
✔️ 함수에서 인터페이스 사용하기
interface Add {
(n1: number, n2: number): number;
}
const addFunction: Add = function (a, b) {
return a + b;
};
console.log(addFunction(1, 2)); // 3
✔️ 클래스와 인터페이스
interface Car {
name: string;
color: string;
}
class Genesis implements Car {
name: string;
color: string;
constructor(name: string, color: string) {
this.name = name;
this.color = color;
}
}
const myCar = new Genesis("G80", "white");
console.log(myCar); // Genesis { name: 'G80', color: 'white' }
✔️ 옵셔널 프로퍼티 (Optional Property)
인터페이스의 속성들은 반드시 구현해야하지만 선택적으로 만들어줄 수도 있다.
속성명 뒤에 '?'를 붙여주면 된다.
interface User {
name: string;
age: number;
gender?: string;
}
let user: User = {
name: "Kim",
age: 30,
};
gender 값을 넣어주지 않아도 에러가 나지 않는다.
✔️ 인터페이스 확장
인터페이스는 extends 키워드를 사용해서 또 다른 인터페이스를 상속 받을 수 있다. 여러 개도 가능
당연히 여기서도 옵셔널 프로퍼티를 사용할 수 있다.
interface Food {
name: string;
calorie?: number;
}
interface Noodle extends Food {
price: number;
}
const noodle: Noodle = {
name: "noodle",
calorie: 10000,
price: 5000,
};
728x90
반응형
'Web > TypeScript' 카테고리의 다른 글
[TypeScript] 리터럴 타입 (Literal Types) (0) | 2022.02.12 |
---|---|
[TypeScript] 함수 (Function) (0) | 2022.02.11 |
[TypeScript] 기본타입 (0) | 2022.02.11 |
[TypeScript] Express에 TypeScript 적용하기 (0) | 2022.02.08 |
[TypeScript] Node.js에서 TypeScript 실행하기 (0) | 2022.02.08 |