반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 정보처리기사요약
- javascript
- ReactNative
- 평일코딩
- 정보처리기사정리
- Oracle
- typescript
- 오라클
- CSS
- 국비IT
- spring
- 리액트네이티브
- 이안의평일코딩
- php
- 자바스크립트 코딩테스트
- 자스코테
- 정보처리기사
- 자바의정석
- 스프링
- 자바스크립트
- 리액트
- 정보처리기사실기
- react
- VUE
- Java의정석
- 정보처리기사실기요약
- 정보처리기사실기정리
- 국비코딩
- 타입스크립트
- 코딩테스트
Archives
- Today
- Total
이안의 평일코딩
[TypeScript] 타입스크립트 기초 (2) - 인터페이스와 타입 별칭 본문
반응형
인터페이스란?
타입스크립트의 인터페이스는 항상 특정 형식을 준수하는 데이터만 받겠다는 상호간의 약속을 의미한다.
파라미터에 인터페이스를 정의하고 함수 호출할 때 파라미터에 정의한 인터페이스의 규칙을 따랐는지 확인한다.
interface User {
age: number;
name: string;
}
// 변수에 인터페이스 활용
var ian: User = {
age: 28,
name: '이안'
}
// 함수에 인터페이스 활용
function getUser(user: User) {
console.log(user);
}
const person = {
age: 28,
name: 'ian'
}
getUser(person);
함수의 전체적은 모습까지 인터페이스가 정의할 수 있다는 게 장점.
라이브러리를 만들거나 협업할 때 함수의 정의 잡을 때 사용.
// 함수의 스펙(구조)에 인터페이스 활용
interface SumFunction {
(a: number, b: number): number;
}
var sum: SumFunction;
sum = function(a: number, b: number): number {
return a + b;
}
인덱싱
배열(Array) 접근 방식. 몇번째 있는 요소에 들어가는 타입도 정해줄 수 있다.
interface StringArray {
[index: number]: string;
}
var arr: StringArray = ['a', 'b', 'c'];
arr[0]; // 'a'
딕셔너리 패턴
객체(Object) 접근 방식
interface StringRegexDictionary {
[key: string]: RegExp;
}
// 왼쪽 속성(string) 오른편 정규표현식(RegExp)
var obj: StringRegexDictionary = {
cssFile: /\.css$/,
jsFile: /\.js$/,
}
상속
extends라는 키워드를 사용해서 인터페이스를 확장한다.
// 인터페이스 확장
interface Person {
name: string;
age: number;
}
interface Developer extends Person {
//name: string;
//age: number;
language: string;
}
var ian: Developer = {
language: 'ts',
name: '이안',
age: 28
}
타입 별칭 (Type Aliases)
타입 별칭은 새로운 타입 값을 생성하는 것이 아니라 특정 타입을 참조할 수 있는 타입 변수를 의미힌다.
즉, 정의한 타입에 대해 참고 가능하도록 별칭(이름)을 부여하는 것이다.
const name: string = 'ian';
// 타입 별칭 적용
type MyName = string;
const name: MyName = 'ian';
type Developer = {
name: string;
skill: string;
}
인터페이스 vs 타입 별칭
interface Person {
name: string;
age: number;
}
type Person = {
name: string;
age: number;
}
var ian: Person = {
name: '이안',
age: 28
}
인터페이스는 확장이 가능하지만 타입 별칭은 확장이 불가능하다.
그러므로 타입 별칭보다는 인터페이스를 사용하는 것을 추천한다.
반응형
'Front-end > TypeScript' 카테고리의 다른 글
[TypeScript] 타입 추론, 단언, 가드, 호환, 모듈화 (0) | 2021.01.22 |
---|---|
[TypeScript] 타입스크립트 기초 (5) - 제네릭 (0) | 2021.01.21 |
[TypeScript] 타입스크립트 기초 (4) - 이넘, 클래스 (2) | 2021.01.20 |
[TypeScript] 타입스크립트 기초 (3) - 유니온 타입과 인터섹션 타입 (0) | 2021.01.20 |
[TypeScript] 타입스크립트 기초 (1) - 타입 (0) | 2021.01.18 |
Comments