Typescript: 질문/아이디어: μ‚¬μš©μž μ •μ˜ μœ ν˜•μ˜ κΈ°λ³Έ 값에 λŒ€ν•΄ 반볡

에 λ§Œλ“  2016λ…„ 12μ›” 11일  Β·  1논평  Β·  좜처: microsoft/TypeScript

νƒ€μž…μŠ€ν¬λ¦½νŠΈ 버전: 2.1.4

μ•”ν˜Έ
TS 2.0μ—μ„œ μž‘λ™ν•˜λŠ” 데 μ‚¬μš©λ˜λŠ” λ‹€μŒ μ½”λ“œ

type Digit = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;

function iExpectDigit(d:Digit)
{ }

for (let k: Digit = 1; k < 10; k++) {
  iExpectDigit(k); //Error, because K is number
}

λ‚˜λŠ” μƒˆλ‘œμš΄ 행동이 μ˜³λ‹€κ³  μƒκ°ν•œλ‹€.
k++ λŠ” μˆ«μžμ™€ 숫자 μ‚¬μ΄μ˜ μ—°μ‚°μ΄λ―€λ‘œ k κ°€ μˆ«μžκ°€ λ˜λŠ” 것은 λ‹Ήμ—°ν•©λ‹ˆλ‹€.

λ‚΄κ°€ 가지고 온 μœ μΌν•œ ν•΄κ²° 방법은

for (let k: Digit = 1; k < 10; k = <Digit>(k + 1)) {
    // k is digit
}

λ˜λŠ”

// in some module
export let digits: Digit[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

for (let k of digits)
{
    // k is digit
}

두 번째 μ ‘κ·Ό 방식은 ν‘œν˜„μ΄ λœν•˜μ§€λ§Œ 더 κΉ”λ”ν•©λ‹ˆλ‹€.

질문
μ‚¬μš©μž μ •μ˜ μœ ν˜•μ˜ κΈ°λ³Έ 값을 λ°˜λ³΅ν•˜λŠ” 더 쒋은 방법이 μžˆμŠ΅λ‹ˆκΉŒ?

Question

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

μœ μŠ€μΌ€μ΄μŠ€κ°€ λ­”μ§€λŠ” λͺ¨λ₯΄κ² μ§€λ§Œ μ›ν•˜λŠ” νƒ€μž…μ„ μœ μ§€ν•¨κ³Ό λ™μ‹œμ— 정확성을 μœ μ§€ν•˜κΈ° μœ„ν•΄μ„œλŠ” λ‹€μŒμ΄ μ μ ˆν•  것 κ°™μ•„μš”

type Digit = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;

function iExpectDigit(d: Digit) { }

function isDigit(n: number): n is Digit {
    return n > -1 && n < 10 && n === Math.trunc(n);
}

for (let k = 0; isDigit(k); k++) {
    iExpectDigit(k);
}

κ·€ν•˜μ˜ μ˜ˆμ—μ„œ 루프λ₯Ό μ’…λ£Œν•˜λ €λ©΄ k κ°€ Digit 이 μ•„λ‹Œ 10 값을 μ·¨ν•΄μ•Ό ν•˜κΈ° λ•Œλ¬Έμ— 정확성을 μœ μ§€ν•œλ‹€κ³  λ§ν•©λ‹ˆλ‹€.

>λͺ¨λ“  λŒ“κΈ€

μœ μŠ€μΌ€μ΄μŠ€κ°€ λ­”μ§€λŠ” λͺ¨λ₯΄κ² μ§€λ§Œ μ›ν•˜λŠ” νƒ€μž…μ„ μœ μ§€ν•¨κ³Ό λ™μ‹œμ— 정확성을 μœ μ§€ν•˜κΈ° μœ„ν•΄μ„œλŠ” λ‹€μŒμ΄ μ μ ˆν•  것 κ°™μ•„μš”

type Digit = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;

function iExpectDigit(d: Digit) { }

function isDigit(n: number): n is Digit {
    return n > -1 && n < 10 && n === Math.trunc(n);
}

for (let k = 0; isDigit(k); k++) {
    iExpectDigit(k);
}

κ·€ν•˜μ˜ μ˜ˆμ—μ„œ 루프λ₯Ό μ’…λ£Œν•˜λ €λ©΄ k κ°€ Digit 이 μ•„λ‹Œ 10 값을 μ·¨ν•΄μ•Ό ν•˜κΈ° λ•Œλ¬Έμ— 정확성을 μœ μ§€ν•œλ‹€κ³  λ§ν•©λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰