Jieunnyμ λΈλ‘κ·Έ
[TS] κ°μ²΄μ νμ λ³Έλ¬Έ
π£ νμ μ€ν¬λ¦½νΈ λ³μ μ μΈλ¬Έ
π let κ³Ό const ν€μλ
let name = 'jieun'
β° κ°μ΄ μμλ‘ λ³κ²½λ μ μλ€.
const name = 'jieun'
β° λ³μκ°μ΄ μ λ λ³νμ§ μλλ€.
π νμ μ£Όμ
let name: string = 'jieun'
let b: boolean = true
n = 'a' // μλ¬
b = false
β° letμΌλ‘ μ μΈν λ³μ«κ°μ νμ μ£ΌμμΌλ‘ λͺ μν νμ μ ν΄λΉνλ κ°μΌλ‘λ§ λ°κΏ μ μλ€.
π νμ μΆλ‘
β° λμ μ°μ°μ('=') μ€λ₯Έμͺ½ κ°μ λ°λΌ λ³μμ νμ μ μ§μ νλ κ²
let n = 1 // nμ νμ
μ numberλ‘ νλ¨
let b = true // bμ νμ
μ booleanμΌλ‘ νλ¨
π any νμ
β° κ°μ νμ κ³Ό 무κ΄νκ² μ΄λ€ μ’ λ₯μ κ°λ μ μ₯ν μ μλ€.
let a: any = 0
a = 'hello'
a = true
a = {}
πundefined νμ
β° νμ μ€ν¬λ¦½νΈμμ undefinedλ νμ μ΄κΈ°λ νκ³ κ°μ΄κΈ°λ νλ€.
let u: undefined = undefined
u = 1 // μλ¬
π ν νλ¦Ώ λ¬Έμμ΄
β° λ³μμ λ΄κΈ΄ κ°μ μ‘°ν©ν΄ λ¬Έμμ΄μ λ§λ€ μ μκ² νλ€.
let count = 10, message = 'Your count'
let result = `${message} is ${count}`;
// Your count is 10
π£ κ°μ²΄μ μΈν°νμ΄μ€
π μΈν°νμ΄μ€λ μ λ±μ₯νλ?
βοΈ object νμ μΌλ‘ μ μΈλ λ³μλ number, boolean, string νμ μ κ°μ κ°μ§ μλ μμ§λ§, μμ± μ΄λ¦μ΄ λ€λ₯Έ κ°μ²΄λ₯Ό λͺ¨λ μμ λ‘κ² λ΄μ μ μλ€.
let o: object = {name: 'Jack', age: 32}
o = {first: 1, second: 2}
β° λ§μΉ κ°μ²΄λ₯Ό λμμΌλ‘ νλ any νμ μ²λΌ λμνλ€.
β° μ΄λ₯Ό λ§κΈ° μν΄μ μΈν°νμ΄μ€κ° λ±μ₯νλ€.
π μΈν°νμ΄μ€ μ μΈλ¬Έ
interface IPerson {
name: string
age: number
}
β° μμ±λ€μ μ¬λ¬ μ€λ‘ ꡬνν λλ ';' μ΄λ λ¨μν μ€λ°κΏμΌλ‘ ꡬλΆνλ€.
β° nameμ΄λ age μμ± μ€ νλλ§ μμ΄λ μ€λ₯κ° λ°μνλ€.
π μ ν μμ±(optional property) ꡬ문
interface IPerson {
name: string
age: number
etc?: boolean
}
β° etc μμ±μ μμ΄λ λκ³ μμ΄λ λλ€.
π μ΅λͺ μΈν°νμ΄μ€
function printMe(me: {name: string, age: number, etc?: boolean}) {
console.log(
me.etc ?
`${me.name} ${me.age} ${me.etc}`:
`${me.name} ${me.age}`
)
}
printMe(ai) // Jack 32
β° μ΅λͺ μΈν°νμ΄μ€λ μ£Όλ‘ μμ²λΌ ν¨μλ₯Ό ꡬνν λ μ¬μ©νλ€.
π£ κ°μ²΄μ ν΄λμ€
π ν΄λμ€ μ μΈλ¬Έ
class Person1 {
name: string
age?: number
}
let jack1: Person1 = new Person1();
jack1.name = 'Jack';
jack1.age = 32;
console.log(jack1); // Person1 { name: 'Jack', age: 32 }
β° nameκ³Ό age μμ±μ κ°μ§ ν΄λμ€
π μ κ·Ό μ νμ
β° ν΄λμ€μ μμ±μ public, private, protectμ κ°μ μ κ·Ό μ νμλ₯Ό μ΄λ¦ μμ λΆμΌ μ μλ€.
β° μλ΅νλ©΄ publicμΌλ‘ κ°μ£Όνλ€.
π μμ±μ
β° νμ μ€ν¬λ¦½νΈμ ν΄λμ€λ constructorλΌλ μ΄λ¦μ νΉλ³ν λ©μλλ₯Ό ν¬ν¨νλ€.
β° constructorλ₯Ό μ¬μ©ν΄ ν΄λμ€μ μμ±μ μ μΈν μ μλ€.
class Person2 {
constructor(public name: string, pubilc age?: number) {}
}
let jack2: Person2 = new Person2('Jack', 32);
console.log(jack2) // Person2 { name: 'Jack', age: 32 }
class Person3 {
name: string
age?: number
constructor(name: string, age?: number){
this.name = name;
this.age = age;
}
}
β° λλ²μ§Έ ν΄λμ€λ₯Ό 첫λ²μ§Έ ν΄λμ€μ²λΌ ν¨μΆν΄μ ꡬνν μ μλ€.
π μΈν°νμ΄μ€ ꡬν
interface IPerson4 {
name: string
age?: number
}
class Person4 implements IPerson4 {
name: string
age: number
}
β° μΈν°νμ΄μ€λ νΉμ μμ±μ΄ μμ΄μΌ νλ€λ κ·μ½μΌ λΏ, 물리μ μΌλ‘ κ·Έ μμ±μ λ§λ€μ§ μλλ€.
β° λλ¬Έμ ν΄λμ€ λͺΈν΅μλ λ°λμ μΈν°νμ΄μ€κ° μ μνκ³ μλ μμ±μ λ©€λ² μμ±μΌλ‘ ννν΄μΌ νλ€.
π μΆμ ν΄λμ€
β° μμ±μ΄λ λ©μλ μμ abstractλ₯Ό λΆμ¬μ λλ₯Ό μμνλ λ€λ₯Έ ν΄λμ€μμ μ΄ μμ±μ΄λ λ©μλλ₯Ό ꡬννκ² νλ€.
abstract class AbstractPerson5 {
abstract name: string
constructor(public age?: number) {}
}
β° name μμ± μμ abstractκ° λΆμμΌλ―λ‘ new μ°μ°μλ₯Ό μ¬μ©ν΄ κ°μ²΄λ₯Ό λ§λ€ μ μλ€.
π ν΄λμ€μ μμ
class Person5 extends AbstractPerson5{
constructor(public name: string, age?: number) {
super(age)
}
}
let jack5: Person5 = new Person5('Jack', 32);
β° Person5 ν΄λμ€λ μΆμ ν΄λμ€μΈ AbstractPerson5λ₯Ό μμν΄μ ageλ₯Ό μ»κ³ , AbstractPerson5λ₯Ό μμλ°λ ν΄λμ€κ° ꡬνν΄μΌ ν name μμ±μ ꡬννκ³ μλ€.
β° λΆλͺ¨ ν΄λμ€μ μμ±μλ₯Ό superλ‘ νΈμΆν μ μλ€.
π static μμ±
class A {
static initValue = 1
}
let initVal = A.initValue // 1
β° μ μ μμ±μ 'dot notation'μ μ¬μ©ν΄ κ°μ μ»κ±°λ μ€μ ν μ μλ€.
'Study > TypeScript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[TS] λ°°μ΄κ³Ό νν (2) | 2023.02.02 |
---|---|
[TS] ν¨μμ λ©μλ (0) | 2023.02.01 |
[TS] νμ μ€ν¬λ¦½νΈ νλ‘μ νΈ λ§λ€κΈ° (0) | 2023.01.30 |
[TS] 2. Usage (0) | 2023.01.27 |
[TS] 1. Fundamentals (0) | 2023.01.26 |