μΈν°νμ΄μ€λ?
μ½κ² λ§ν΄ 미리 νμ μ μ μνλ κ²μ΄λΌκ³ ν μ μμ΅λλ€.
νμ μ μ§μ ν κ°μ μ μν μΈν°νμ΄μ€ ν€μλλ₯Ό λ§μΉ λ³μμ²λΌ μ¬μ©ν μ μμ΅λλ€.
νΉν ν¨μμ ꡬ쑰λ₯Ό μ μν λ μΈν°νμ΄μ€λ₯Ό λ§μ΄ μ¬μ©νλ€κ³ ν©λλ€.π
//μΈν°νμ΄μ€: 미리 νμ
μ μλ₯Ό νλ κ²μΌλ‘, νμ
λ³μΉκ³Ό μ μ¬ν©λλ€.
interface Example {
name: string,
age: number
}
1. λ³μμ μ¬μ©νλμΈν°νμ΄μ€
λ³μμ λ€μ΄κ°λ λ°μ΄ν°μ νμ μ 미리 μ μν μ μμ΅λλ€.
//1. λ³μμ μ¬μ©νλ μΈν°νμ΄μ€
interface User {
name: string,
age: number
}
var user: User = {name: "hello", age: 25};
2. ν¨μμ parameterμ μ¬μ©νλ μΈν°νμ΄μ€
ν¨μμ parameterμ μΈν°νμ΄μ€λ₯Ό μ μ©νλ©΄, ν¨μλ₯Ό νΈμΆν λμ argument λν μΈν°νμ΄μ€ κ·μΉμ λ°λΌμΌ ν©λλ€.
//1. λ³μμ μ¬μ©νλ μΈν°νμ΄μ€
interface User {
name: string,
age: number
}
function getUser(user: User) {
console.log(user);
}
3. ν¨μμ ꡬ쑰λ₯Ό μ μνλ μΈν°νμ΄μ€
ν¨μμ parameter, returnκ° μ¦ μ€νμ μ μν΄μ€ μ μμ΅λλ€.
μΈν°νμ΄μ€λ‘ ν¨μμ μ€νμ μ μν λλ μ μΈκ³Ό ν¨μ μ μλ₯Ό λΆλ¦¬νμ¬ μ¬μ©νλλ°,
μ΄λ κ² μΈν°νμ΄μ€λ‘ μ§μ ν μΌμ λ§μ΄ μλ€κ³ ν©λλ€.
λμ ν¨μμ parameterμ returnκ°μ μ§μ μ§μ ν μ μκΈ΄ ν©λλ€.
//3. ν¨μ μ 체 νμ
μ μ μνλ μΈν°νμ΄μ€
interface AddFunc {
(num1: number, num2: number): number
}
//ν¨μμ μ€νμ λν΄ μ μν λλ μ μΈκ³Ό ν¨μ μ μλ₯Ό λΆλ¦¬ν©λλ€.
//λ€λ§ μΈν°νμ΄μ€λ‘ ν¨μμ μ€νμ μ μν μΌμ λ§μ΄ μλ€κ³ ν©λλ€.
//λμ ν¨μμ parameterμ returnκ°μ λν νμ
μ μλ₯Ό ν¨μμ μ§μ ν μ μμ΅λλ€.
let add: AddFunc;
add = function(num1, num2){
return num1 + num2;
}
4. μΈλ±μ± λ°©μμ μ μνλ μΈν°νμ΄μ€
*μΈλ±μ± λ°©μμ΄λ? μΈλ±μ€λ‘ λ°°μ΄μ μμμ μ κ·Όνλ λ°©λ²
μ΄λ κ² μΈλ±μ€λ‘ μ κ·Όνλ κ°μ νμ μ μΈν°νμ΄μ€λ₯Ό μ¬μ©νμ¬ λ―Έλ¦¬ μ§μ ν΄μ€ μ μμ΅λλ€.
μΈλ±μ± λ°©μμ μΈν°νμ΄μ€λ₯Ό μ μνλ©΄ μΈλ±μ€λ‘ μ κ·Όνλ κ°μ λν νμ κ·μΉμ λ°λΌμΌ ν©λλ€.
μλ₯Ό λ€μ΄, μΈλ±μ± λ°©μμ μ μν μΈν°νμ΄μ€κ° λ¬Έμμ΄μΈ κ²½μ°,
μΈλ±μ€λ‘ μ κ·Όν κ°μ λ¬Έμμ΄μ΄ μλ μ«μλ₯Ό ν λΉνλ €κ³ νλ©΄ μλ¬κ° λ°μν©λλ€.
//3. μΈλ±μ± λ°©μμ μ μνλ μΈν°νμ΄μ€: μΈλ±μ€λ‘ μ κ·Όνλ κ°μ λν ν λΉ νμ
μ μ§μ ν©λλ€.
interface AlphabetArr {
[index: number]: string
}
let arr: AlphabetArr = ['a', 'b', 'c'];
arr[0] = 'A';
//arr[1] = 10; //μΈλ±μ€λ‘ μ κ·Όνλ κ°μ λν νμ
μ μμ λ§μ§ μμ μλ¬ λ°μ
4-1. μΈν°νμ΄μ€ λμ λ리 ν¨ν΄
*λμ λ리 ν¨ν΄μ΄λ? κ°μ²΄μ μμ±μ μ΄λ»κ² μ κ·Όν κ²μΈμ§ μ μνλ λ°©μ
κ°μ²΄μ κ°μ μ κ·Όνλ λ°©μμ μΌμ»«λ λ§μ΄λΌκ³ νλ©΄ λκ² μ΅λλ€.
μλμ κ°μ΄ κ°μ²΄μ keyμ value κ°κ°μ νμ μ μ ν΄μ£Όμμ΅λλ€.
//4. λμ
λ리 ν¨ν΄
interface StringRegexDictionary {
[key: string]: RegExp
}
var obj = {
cssfile: /|.css$/,
jsfile: /|.js$/
}
5. μΈν°νμ΄μ€ νμ₯
μΈν°νμ΄μ€λ₯Ό λ°μμ λλ€λ₯Έ μΈν°νμ΄μ€λ₯Ό λ§λ€ λ μ¬μ©ν©λλ€.
extends ν€μλμ ν¨κ» μ¬μ©ν©λλ€.
//5. μΈν°νμ΄μ€ νμ₯
interface Person {
name: string,
age: number
}
interface Job extends Person {
job: string
}
var personObj: Job = {
name: 'hello',
age: 25,
job: 'developer'
}
λν extends ν€μλλ₯Ό νμ©ν΄ μΈν°νμ΄μ€λ₯Ό νμ₯ν μ μλ κ²μ
νμ λ³μΉ(type alias)μ ꡬλΆλλ μΈν°νμ΄μ€λ§μ μ₯μ μ΄λΌκ³ ν μ μμ΅λλ€.
νμ λ³μΉ(type alias)λ νΉμ νμ μ λν΄ μ΄λ¦ μ¦ λ³μΉμ λΆμ¬νλ κ²μΌλ‘,
νμ μ μμ±νλ κ²μ΄ μλλΌ μ΄λ¦λ§ λΆμ¬ν κ²μ λλ€.
νμ λ³μΉμ μΈν°νμ΄μ€μ λ¬λ¦¬ νμ₯ν μ μμ΅λλ€.
κ·Έλ λ€λ©΄ μ΄λ€ κ²μ μ¨μΌ ν κΉμ?
μννΈμ¨μ΄νλ‘κ·Έλλ° μμΉμ€ νλμΈ OCPμ λ°λ₯΄λ©΄, 'νμ₯μλ μ΄λ €μμΌλ©΄μ μμ μλ λ«νμλ' κ°λ°, μ¦ μλ μ½λλ₯Ό λ³κ²½νκΈ° μμΌλ©΄μ κΈ°λ₯μ νμ₯νλ λ°©μμΌλ‘ κ°λ°νλ κ²μ΄ μ μ§λ³΄μ μΈ‘λ©΄μμ μ 리νλ€κ³ ν©λλ€. μ΄λ¬ν μμΉμ μ μ©ν΄λ³΄λ©΄, νμ λ³μΉ 보λ€λ μλ μ½λλ₯Ό μ μ§νλ©΄μλ νμ₯μν¬ μ μλ μΈν°νμ΄μ€λ₯Ό μ°λ κ²μ΄ μ ν©νλ€λ κ²μ μ μ μμ΅λλ€. μ λν κ°λ° 곡λΆλ₯Ό νλ©΄μ μμ μΈ μ±μ₯ λΏλ§ μλλΌ μ½λλ₯Ό λ§μ΄ 보면μ μ’μ μ½λ, νμ§ λμ μ½λμ λν κ΄μ¬μ κ³μνκ³ μ ν©λλ€.π
μΈνλ°μ μ λ£ κ°μ 'νμ μ€ν¬λ¦½νΈ μ λ¬Έ - κΈ°μ΄λΆν° μ€μ κΉμ§'λ₯Ό μκ°νκ³ μμ±νλ κΈμ λλ€.
νμ μ€ν¬λ¦½νΈ μ λ¬Έ - κΈ°μ΄λΆν° μ€μ κΉμ§ - μΈνλ° | κ°μ
νμ μ€ν¬λ¦½νΈλ₯Ό μμνλ λΆλ€μ μν κ°μμ λλ€. μ΅μ μλ°μ€ν¬λ¦½νΈ λ¬Έλ²μ λͺ¨λ₯΄λ λΆλ€λ μ½κ² λ°°μΈ μ μλλ‘ κ΅κ³Ό κ³Όμ μ ꡬμ±νμμ΅λλ€. μ΄λ ΅κ²λ§ λκ»΄μ§λ νμ μ€ν¬λ¦½νΈλ₯Ό μ λ¬Έμ κ΄
www.inflearn.com
(κ°μ μ 곡μμ΄μ μΊ‘ν΄νκ΅ λμ νμ μ€ν¬λ¦½νΈ νΈλλΆλ κ°μ΄ μ°Έκ³ νλ©΄ μ’μ΅λλ€.π)
'π©βπ»κ°λ°_TIL > TIL' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[HTML] 기본 ꡬ쑰 (0) | 2022.01.20 |
---|---|
[νμ μ€ν¬λ¦½νΈ] μ°μ°μλ₯Ό μ΄μ©ν νμ μ μ (0) | 2022.01.15 |
[νμ μ€ν¬λ¦½νΈ] νμ μ€ν¬λ¦½νΈ νλ‘μ νΈ μμνλ λ°©λ² (0) | 2022.01.12 |
[νμ μ€ν¬λ¦½νΈ] νμ μ€ν¬λ¦½νΈλ₯Ό μ°λ μ΄μ (0) | 2022.01.11 |
[리μ‘νΈ]리μ‘νΈ λΌμ°ν° μ΄κΈ° μΈν μ ν΄λ³΄μ! (0) | 2021.12.25 |