πμ£Όμ : νμ μ€ν¬λ¦½νΈμ κΈ°λ³Έ νμ
νλ‘ νΈμλλ μ΄μ νμ μ€ν¬λ¦½νΈκ° νμλΌκ³ ν΄λ κ³ΌμΈμ΄ μλλ€.
1. κΈ°λ³Έμ λ°°μ°κΈ° μ μ μμμΌ ν κ²
νμ μ€ν¬λ¦½νΈλ₯Ό μ¬μ©νλ©΄μ κΌ κΈ°μ΅ν΄μΌ ν κ²λ€μ΄ λͺ κ°μ§ μλ€.
μ΄ λΆλΆμ λκ³ λκ³ κΈ°μ΅ν΄μ μΌλ¬΄μ§ κ°λ°μκ° λλλ‘ νμ!
1-1. any μ§μνκΈ°
νμ μ€ν¬λ¦½νΈλ κΈ°λ³Έμ μΌλ‘ μλ°μ€ν¬λ¦½μ νμ μ 묻ν(?) κ²μ΄λΌκ³ 보면 λλ€.
νμ§λ§ "any" νμ μ 묻νκ² λλ€λ©΄...
κ·Έ μ½λλ μλ°μ€ν¬λ¦½νΈλ λ€λ¦μλ μ½λκ° λλ€.
κ·Έλ¬λκΉ μ λ§νλ©΄,, μλ μμ μ°μ§ μλ κ²μ λͺ©νλ‘ νμ!
1-2. κ·ΈλΌμλ λΆκ΅¬νκ³ ,,,
μ°λ¦¬κ° μ무리 λ Έλ ₯ν΄λ any μ¬μ©μ΄ λΆκ°νΌν λκ° μμ κ²μ΄λ€!
κ·Έλ΄ λ μ°λλ‘ νμ.
- unknown
- Generic
- Type Guard
- Type Assertion
- ban-ts-comment
// @ts-expect-error
// @ts-ignore
// @ts-nocheck
// @ts-check
1-3. μ΄κ±΄ κΌ νμ
- strictNullChecks
- λ¬Έμν
- μ νμ΄ν ν ꡬν
- μλ§μ ꡬκΈλ§
- 컨벀μ & ν λ¬Έν μ§ν₯ (ν λ¨μλ‘,, νκ²½μ λ°λΌ μ¬μ©νλ λ²μ΄ λ€λ₯΄λ€!)
1-4. μ μ΄μ μμμ΄λ€.
λ무 μ λΌμκΈ° λλ¬Έμ TS - playgroundμμ μ°μ΅μ ν΄λ³΄μ!
2. κΈ°λ³Έ νμ
2-1. type annotation
const num: number = 1
const str: string = 'λ¬Έμμ΄'
μ΄λ κ² μ½λ‘ (:) λ€μμ νμ μ λΆμ΄λ©΄ λλ€.
2-2. μμ νμ
μ΄ μΉκ΅¬λ€μ νμ μΆλ‘ μ΄ κ°λ₯νκΈ° λλ¬Έμ νμ μ΄λ Έν μ΄μ μ κ΅³μ΄ μ μ¨λ λλ€.
const num: number = 123;
const str: string = '123';
const boll: boolean = true;
2-3. κ°μ²΄ νμ
// anyμ λ€λ₯Όκ² μλ μν©
const obj: object = {
str: 'str',
num: 123,
child: {
str: 'str1',
num: 123123,
}
}
// μ’ λ μμΈνκ² νμ
μ λ¬μ¬νμ
const obj2: { str: string, num: number, child: { str: string, num: number } } = {
str: 'str',
num: 123,
child: {
str: 'str1',
num: 123123,
}
}
2-4. ν¨μ νμ
ν¨μνμ μ λ§€κ°λ³μμ νμ κ³Ό λ°ννλ νμ 2κ°μ§κ° νμνλ€.
function sum(num1: number, num2: number): number {
return num1 + num2
}
const func = (str1: string, str2: string): string => {
return str1 + ' ' + str2;
}
const func = (obj: { str1: string, str2: string }) => {
return obj.str1 + ' ' + obj.str2;
}
2-5. λ°°μ΄ νμ
λ°°μ΄μ μλ°μ€ν¬λ¦½νΈμμ κ°μ²΄λ‘ μ·¨κΈλλ μ£Όμνμ!
const strArr: string[] = ['qwe', 'rty'];
const strArr: Array<string> = ['qwe', 'rty'];
2-6. 리ν°λ΄ νμ
letμ μ¬ν λΉμ΄ κ°λ₯νλ―λ‘, νμ μΆλ‘ μ΄ μμ νμ μ΄ λλ€.
νμ§λ§, const μ¬ν λΉμ΄ λΆκ°λ₯νλ―λ‘, νμ μΆλ‘ μ΄ κ° μμ²΄κ° λλ€.
let letString = 'Hello';
// letString νμ
μΆλ‘ : string
const constString = 'Hello';
// constString νμ
μΆλ‘ : 'Hello'
2-7. νν νμ
κΈΈμ΄ κ³ μ & μΈλ±μ€ νμ μ΄ κ³ μ λ λ°°μ΄μ λ§νλ€.
μ¬λ¬ λ€λ₯Έ νμ μΌλ‘ μ΄λ£¨μ΄μ§ λ°°μ΄μ μμ νκ² κ΄λ¦¬νκΈ° μν΄μ λ±μ₯νμλ€.
const tupleArr:[string, number, string, boolean] = ['a', 1, 'c', true];
λ°°μ΄ νμ μ κΈΈμ΄ μ‘°μ κ°λ₯
const tupleArr2: [number, ... string[]] = [1, 'a', 'b', 'c'];
2-8. undefined / null
νμ μ€ν¬λ¦½νΈμμλ undefined / nullμ κ³ μ ν νΉλ³ν νμ μΌλ‘ μΈμ νλ€.
(μλ°μ€ν¬λ¦½νΈλ λ§μ°¬κ°μ§!)
const nullValue: null = null;
const undefinedValue: undefined = undefined;
νμ§λ§,, μ¬λ§ν΄μλ μ¬μ©νμ§ μλ κ²μ μΆμ²νλ€.
μ’ λ μΈλ°ν κ·μΉμ κ°μ§κ³ μ¬μ©νλ κ²μ μ§ν₯ν©λλ€!
2-9. any
λͺ¨λ κ°(νμ )μ μ§ν©μ΄λ€. λ°λΌμ, anyλ₯Ό μ¬μ©νκ² λλ€λ©΄ μλ°μ€ν¬λ¦½νΈλ₯Ό μ¬μ©νλ κ²κ³Ό κ°λ€κ³ λ³Ό μ μλ€.
λλ¬Έμ νμ μ€ν¬λ¦½νΈλ₯Ό μ¬μ©ν λλ
- noImplicitAny
- strict μ΅μ true
λ μ΅μ μ μ¬μ©νλ κ²μ κΆμ₯νλ€
2-10. unknown
μλ‘μ΄ μ΅μμ νμ μ΄λ€.
anyμ²λΌ λͺ¨λ κ°μ νμ©νμ§λ§, μλμ μΌλ‘ μ격νλ€.
Tsμμλ νμ μΆλ‘ μμ unknownμ΄ λμ€λ κ²½μ°κ° μμΌλ, κ°λ°μκ° μ§μ λͺ μν΄μΌ νλ€.
assertion / νμ κ°λμ ν¨κ» μ¬μ©νλ©΄ λλ€!
let num: unknown = 99;
// νμ
κ°λλ₯Ό μ¬μ©ν¨
if(typeof num === 'string') {
console.log('string νμ
μ
λλ€.')
} else {
console.log('string νμ
μ΄ μλλλ€.')
}
2-11. void
ν¨μμ λ°νμ΄ μλ κ²½μ°λ₯Ό λͺ μνκΈ° μν΄ μ¬μ©νλ€.
λ³΄ν΅ νμ μΆλ‘ μ μμνλ κ²½μ°κ° λ§λ€.
JSμμλ μμμ μΌλ‘ undefinedλ₯Ό λ°ννμ§λ§, Tsμμλ μ‘°κΈ λ€λ₯΄κΈ° λλ¬Έμ..
function func(): void {
console.log('hello')
}
End.
'μ°μ½ν°λ > TypeScript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
νμ μ€ν¬λ¦½νΈ_λ Όλ¦¬μ°μ°μνμ© (0) | 2023.02.11 |
---|---|
νμ μ€ν¬λ¦½νΈ_μ΄κ±°ν (0) | 2023.02.09 |
νμ μ€ν¬λ¦½νΈ_νμ κ°λ (0) | 2023.02.07 |
νμ μ€ν¬λ¦½νΈ_μΈν°νμ΄μ€ (1) | 2023.02.06 |
νμ μ€ν¬λ¦½νΈ_ν΄λμ€ (0) | 2023.02.03 |