TypeScript

  • ํƒ€์ž… ์ง€์ •ํ•˜๊ธฐ

    ์ด๋ ‡๊ฒŒ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ์ถ”๋ก ์ ์œผ๋กœ ํƒ€์ž…์ด ์ง€์ •๋œ๋‹ค.

    // name์€ string, age๋Š” number
    const User = {
    name: "Jun";
    age: 26;
    }

    ๋ช…์‹œ์ ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด์„œ ํƒ€์ž…์„ ์–ธ์„ ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค.

    const User: {name: string, age: number} = {
        name: "Jun";
        age: 26;
    }

    'type'์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ 'interface'๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํƒ€์ž…์„ ์ง€์ •ํ•˜๋ฉด, ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

    type User = {
        name: string;
        age: number;
    }
    
    interface User {
        name: string;
        age: number;
    }

    'type'๊ณผ 'interface'์˜ ์ฐจ์ด์ ์€ ๊ณต๋ถ€๋ฅผ ๋” ํ•ด๋ด์•ผ ์•Œ ๊ฒƒ ๊ฐ™๋‹ค. ํ˜„์žฌ๋Š” 'interface'๋Š” 'type'๋ณด๋‹ค ํ™•์žฅํ•˜๊ณ  ์ˆ˜์ •ํ•˜๊ธฐ๊ฐ€ ์‰ฝ๋‹ค๋Š” ์ ๋งŒ ์•Œ๊ณ  ์žˆ๋‹ค.

    ๋ฐฐ์—ด์— ํƒ€์ž…์„ ์ง€์ •ํ•˜๋ ค๋ฉด ๋Œ€๊ด„ํ˜ธ๋ฅผ ๋ถ™์—ฌ์ฃผ๊ฑฐ๋‚˜, Tuple์„ ์‚ฌ์šฉํ•œ๋‹ค.

    const name : string[]
    name = ["Jun", "junghan", "mingyu"]
    
    const name : [string, number]
    name = ["Jun", 26]

    Union Type์€ ์—ฌ๋Ÿฌ ํƒ€์ž… ์ค‘ ํ•˜๋‚˜์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

    // string ์ด๊ฑฐ๋‚˜ number ์ด๊ฑฐ๋‚˜
    const name : string | number
    name = "Jun"
    name = 26

    ๋งค๊ฐœ๋ณ€์ˆ˜๋‚˜ props๋กœ ๋„˜๊ฒจ์ค„ ๋•Œ ๊ฐ’์ด ์—†์„ ์ˆ˜๋„ ์žˆ๋‹ค๋ฉด '?' ์˜ต์…”๋„์ฒด์ด๋‹์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, ๊ธฐ๋ณธ๊ฐ’์„ ์„ค์ •ํ•ด์ค€๋‹ค.

    function printUser(name, age = 26) {
        console.log(name, age)
    }
    // age๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ’์ด ์—†์„ ๊ฒฝ์šฐ 26์ด ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋“ค์–ด๊ฐ„๋‹ค.

    Type๊ณผ Type์„ ํ•ฉ์ณ์„œ ํ™•์žฅํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค.

    type User = {
        name: string,
        age: number,
    };
    
    type Info = {
        email: string,
        address: string,
    };
    
    type UserAndInfo = User & Info;

Last updated