Typescript: λ¬Έμžμ—΄ λ¦¬ν„°λŸ΄μ— λŒ€ν•œ μœ ν˜• μ–΄μ„€ μ…˜ μž‘λ™μ΄ 쀑지됨

에 λ§Œλ“  2016λ…„ 09μ›” 12일  Β·  3μ½”λ©˜νŠΈ  Β·  좜처: microsoft/TypeScript

TypeScript 버전 : 2.1.0-dev.20160912

μ•”ν˜Έ

// A *self-contained* demonstration of the problem follows...
const types = {
    test: <'test'>'test',
    test2: 'test2' as 'test2'
} // type: {test: string, test2:string}

let a = <'test'>'test'  // type string

μ•„λ§ˆλ„ 관련이 μžˆμŠ΅λ‹ˆλ‹€ : https://github.com/Microsoft/TypeScript/pull/10676

Bug Fixed

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

@wallverb λ™μ˜ν•©λ‹ˆλ‹€. _some_ ν˜•μ‹μ˜ ꡬ문을 μ‚¬μš©ν•˜μ—¬ λͺ…μ‹œ 적으둜 μœ ν˜•μ„ λͺ…μ‹œν•˜μ§€ μ•Šκ³  ν™•μž₯을 μ›ν•˜μ§€ μ•ŠμŒμ„ λ‚˜νƒ€λ‚΄λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ–΄μ¨Œλ“  이전 λ²„μ „κ³Όμ˜ ν˜Έν™˜μ„±μ„ μœ„ν•΄ μš°λ¦¬λŠ” νƒ€μž… 단언이 κ·Έ 의미λ₯Ό 갖도둝 ν—ˆμš©ν•΄μ•Όν•©λ‹ˆλ‹€.

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

예, 이것은 # 10676κ³Ό 관련이 μžˆμŠ΅λ‹ˆλ‹€. μ΄μ „μ—λŠ” λ¬Έμžμ—΄ λ¦¬ν„°λŸ΄μ΄ νŠΉμ • "λ¦¬ν„°λŸ΄ μ»¨ν…μŠ€νŠΈ"(예 : μœ ν˜• μ–΄μ„€ μ…˜ 이후)μ—μ„œλ§Œ λ¦¬ν„°λŸ΄ μœ ν˜•μ„ 가지며 객체 λ¦¬ν„°λŸ΄ μ†μ„±μ˜ μœ μΆ” 된 μœ ν˜•μœΌλ‘œ μ •ν™•ν•œ μœ ν˜•μ˜ ν‘œν˜„μ‹μ„ μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€. 이제 λ¬Έμžμ—΄ λ¦¬ν„°λŸ΄μ—λŠ” 항상 λ¦¬ν„°λŸ΄ μœ ν˜•μ΄ 있으며 λŒ€μ‹  λ³€κ²½ κ°€λŠ₯ν•œ μœ„μΉ˜ (예 : 객체 λ¦¬ν„°λŸ΄ 속성)에 λŒ€ν•΄ μœ μΆ” 될 λ•Œ _widen_ μœ ν˜•μ΄ μ§€μ •λ©λ‹ˆλ‹€. λ”°λΌμ„œ κ·€ν•˜μ˜ μ˜ˆμ—μ„œ μœ ν˜• μ–΄μ„€ μ…˜μ€ (a) λ¬Έμžμ—΄ λ¦¬ν„°λŸ΄μ΄ 이미 λ¦¬ν„°λŸ΄ μœ ν˜•μ΄λ―€λ‘œ (b) μœ ν˜• μ–΄μ„€ μ…˜ 이후 전체 ν‘œν˜„μ‹μ˜ κ²°κ³Όλ₯Ό λ„“νžˆκΈ° λ•Œλ¬Έμ— νš¨κ³Όκ°€ μ—†μŠ΅λ‹ˆλ‹€.

더 λ‚˜μ€ 이전 λ²„μ „κ³Όμ˜ ν˜Έν™˜μ„±μ„ μœ„ν•΄ μ΄λ‹ˆμ…œ 라이저 ν‘œν˜„μ‹μ΄ μœ ν˜• μ–΄μ„€ μ…˜μΌ λ•Œ μΆ”λ‘  된 μœ ν˜•μ„ λ„“ νžˆμ§€ _not_ κ³ λ €ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ²°κ΅­, 그렇지 μ•ŠμœΌλ©΄ μœ ν˜• μ£Όμž₯의 μš”μ μ΄ λ¬΄μ—‡μž…λ‹ˆκΉŒ?

@ahejlsberg 응닡

μ΄λ‹ˆμ…œ 라이저 ν‘œν˜„μ‹μ΄ νƒ€μž… μ–΄μ„€ μ…˜μΌ λ•Œ μΆ”λ‘  된 νƒ€μž…μ„ λ„“νžˆλŠ” 것을 _not_ κ³ λ €ν•  수 μžˆλ‹€λ©΄ 쒋을 κ²ƒμž…λ‹ˆλ‹€. 그리고 λ™μ˜ν•©λ‹ˆλ‹€. 이것이 νƒ€μž… μ–΄μ„€ μ…˜μ˜ μš”μ μž…λ‹ˆλ‹€. :)

그것없이 μž‘λ™μ„ 멈좜 또 λ‹€λ₯Έ 일반적인 κ²½μš°λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

function test(style: { align: 'left' | 'right', size: number }) {
}

const style = {
    align: 'left' as 'left',
    size: 5
}

test(style)

λ¦¬ν„°λŸ΄ μœ ν˜• https://github.com/Microsoft/TypeScript/issues/10195에 λŒ€ν•œ ꡬ문이 도움이 될 수 μžˆμ§€λ§Œ ν˜„μ‹€μ΄ 될지 ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

λͺ¨λ“  것에 κ°μ‚¬ν•©λ‹ˆλ‹€

@wallverb λ™μ˜ν•©λ‹ˆλ‹€. _some_ ν˜•μ‹μ˜ ꡬ문을 μ‚¬μš©ν•˜μ—¬ λͺ…μ‹œ 적으둜 μœ ν˜•μ„ λͺ…μ‹œν•˜μ§€ μ•Šκ³  ν™•μž₯을 μ›ν•˜μ§€ μ•ŠμŒμ„ λ‚˜νƒ€λ‚΄λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ–΄μ¨Œλ“  이전 λ²„μ „κ³Όμ˜ ν˜Έν™˜μ„±μ„ μœ„ν•΄ μš°λ¦¬λŠ” νƒ€μž… 단언이 κ·Έ 의미λ₯Ό 갖도둝 ν—ˆμš©ν•΄μ•Όν•©λ‹ˆλ‹€.

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