λ³μ νμ μ§μ νκΈ°
μΌλ° νμ μ§μ
let μ΄λ¦ :string = 'kim' //string, number, boolean, bigint, null, undefined,[], {}
μ¬λ¬κ°μ§ νμ μ§μ
let μ΄λ¦ :string | number = 'kim';
object νμ μ§μ
let λμ΄ :{ age : number } = { age : number }
νκΊΌλ²μ νμ μ§μ νκΈ°
type MyObject = {
[key :string] : number,
}
let μ² μ :MyObject = {
age : 50,
weight : 100,
}
μ΄λ€ μμ±μ΄ λ€μ΄κ°μ§ λͺ¨λ₯Ό λ μ¬μ© κ°λ₯νλ€.
array νμ μ§μ
let μ΄λ¦ :string[] = ['kim', 'park']
let λμ΄ :{ age : number } = { age : number }
generic : array μλ£ νμ μ§μ
let μ΄λ¦ :Array<string> = ['kim', 'park']
tuple : array μλ£ (μμ ν¬ν¨) νμ μ§μ
type Member = [number, boolean];
let john:Member = [100, false]
μ¬λ¬κ°μ§ νμ μ ν¨κ» κ°μ§ μ μλ λ°°μ΄μ΄λ€. μμμ νμ κ³Ό κ°μκ° κ³ μ λ λ°°μ΄μ μμ±ν μ μλ€. tupleμ κ·Έλ€μ§ κΆμ₯λμ§ μλλ€.
ν¨μ νλΌλ―Έν°, λ¦¬ν΄ νμ μ§μ
function ν¨μλͺ
(x :number) :number{
return x * 2
}
ν¨μλ return νμ μΌλ‘ voidλ₯Ό μ€μ ν μ μλ€. μ΄λ returnμ΄ μλμ§ μ²΄ν¬ν μ μλ νμ μ΄λ€.
class νμ μ§μ
class Person {
name;
constructor(name :string){
this.name = name;
}
}
μ€λ₯κ° λλ κ²½μ°
λ³μ νμ μ΄ νμ€νμ§ μμ λ μ°μ° μ€ν
//μλ¬
function ν¨μλͺ
(x :number | string) {
return x * 2
}
//κ°λ₯
function ν¨μλͺ
(x :number | string) {
if (typeof x === 'number'){
return x * 2
}
}
νμ μ΄ λ¬΄μμΈμ§ 체ν¬νλ narrowing λλ assertion λ¬Έλ²μ μ¬μ©ν΄μΌ μ°μ°ν μ μλ€. μλ narrowing λ¬Έλ².
assertion λ¬Έλ²
//μλ¬
function ν¨μλͺ
(x :number | string) {
return x * 2
}
//κ°λ₯
function ν¨μλͺ
(x :number | string) {
let array :number[] = [];
array[0] = x as number; //assertion
}
assertion λ¬Έλ²μ λ¨λ°νμ§ λ§κ³ μ©λλ₯Ό μ νμ νμ.
1. Narrowing ν λ μ΄λ€. μμ²λΌ μ λμ¨νμ
μ΄ μμ λ narrowingνλ μ©λλ‘ μ°μ§ μκ³ stringμΌλ‘ λμ΄μλκ±Έ numberλ‘ λ°κΎΈλ κ² μλλ€.
2. λ¬΄μ¨ νμ
μ΄ λ€μ΄μ¬μ§ 100% νμ€ν λ μ΄λ€.
3. λΉμμ©μ΄λ λλ²κΉ
μ©μΌλ‘ μ°κ³ κ·Έλ₯ μ°μ§ λ§μ.
ν
νΉμ μμ±μ΄ μ νμ¬νμ΄λ©΄ λ¬Όμνλ₯Ό κΈ°μ νλ€.
function ν¨μλͺ
(x? :number) {
return x * 2
}
//*** λ¬Όμνλ undefinedλ₯Ό μΆκ°ν΄ union νμ
μΌλ‘ λλ κ²κ³Ό λμΌνλ€.
function ν¨μλͺ
(x :number | undefined) {
return x * 2
}
(μ€μ) λ¬Όμνλ₯Ό κΈ°μ νλ©΄ undefinedλ₯Ό μΆκ°ν΄ unionνμ μΌλ‘ λλ κ²κ³Ό λμΌνλ€.
literal type : μνλ νμ μ λ§λ€ μ μλ€.
type NameType = 'kim' | 'park;
let μ΄λ¦ :NameType = 'kim';
μΆμ² : μ½λ©μ ν https://codingapple.com/ / TypeScript Documentation https://www.typescriptlang.org/docs/handbook/2/objects.html
'π TypeScript > κ°λ ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μ½λ©μ ν] νμ μ€ν¬λ¦½νΈ HTML μ‘°μμ μ£Όμμ (1) (0) | 2023.12.17 |
---|---|
[μ½λ©μ ν] ν¨μμ object λ©μλμ type alias μ§μ νκΈ° (0) | 2023.12.13 |
[μ½λ©μ ν] νμ μ νΉμ κ°μΌλ‘ μ§μ νμ : Literal Types (+ as const) (0) | 2023.12.13 |
[μ½λ©μ ν] νμ μ λ³μμ λ΄μ : type alias (0) | 2023.12.11 |
νμ μ€ν¬λ¦½νΈ νμ μ μΆ(Type Inference) (0) | 2023.12.07 |