Tslint: μ„Έλ―Έμ½œλ‘  κ·œμΉ™μ€ 클래슀 멀버 ν•¨μˆ˜μ—μ„œ λΆˆν•„μš”ν•œ μ„Έλ―Έμ½œλ‘ μ— ν”Œλž˜κ·Έλ₯Ό 지정해야 ν•©λ‹ˆλ‹€.

에 λ§Œλ“  2016λ…„ 08μ›” 11일  Β·  8μ½”λ©˜νŠΈ  Β·  좜처: palantir/tslint

λ°”μΈλ”©λœ 클래슀 멀버 ν•¨μˆ˜ 뒀에 ν›„ν–‰ μ„Έλ―Έμ½œλ‘ μ„ μƒλž΅ν•  수 μžˆλ„λ‘ μ„Έλ―Έμ½œλ‘  κ·œμΉ™μ˜ λ™μž‘μ„ λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€.

class Foo {
  public renderFoo = () => {
    return null;
  }
   ^ right here
}

TSLint 4.0의 ν•΄λ‹Ή μœ„μΉ˜μ— μ‹€μ œλ‘œ μ„Έλ―Έμ½œλ‘ μ„ _ban_ν•  것을 μ œμ•ˆν•©λ‹ˆλ‹€. μƒˆλ‘œμš΄ μ˜΅μ…˜ allow-bound-class-methods 으둜 이전 κΈ°λŠ₯을 지원할 수 μžˆμŠ΅λ‹ˆλ‹€.

Easy P2 Fixed Breaking Change Enhancement

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

μ˜¬λ°”λ₯Έ tslint ꡬ성(λ‚΄κ°€ 그랬던 κ²ƒμ²˜λŸΌ)을 μ°Ύκ³  μžˆλŠ” 이 μŠ€λ ˆλ“œμ— μ˜€λŠ” μ‚¬λžŒλ“€μ„ μœ„ν•΄ - 이에 λŒ€ν•œ μ˜¬λ°”λ₯Έ ꡬ문은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.
"μ„Έλ―Έμ½œλ‘ ": [true, "항상", "λ°”μš΄λ“œ 클래슀 λ©”μ„œλ“œ λ¬΄μ‹œ"]

μ°Έμ‘°: https://palantir.github.io/tslint/rules/semicolon/

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

이것이 4.0에 ν•„μš”ν•œ 것인지 ν™•μ‹ ν•  수 μ—†μ§€λ§Œ, μ–΄λŠ μͺ½λ„ λ„μž…ν•˜λŠ” 것이 λ‚˜μ˜μ§€λŠ” μ•Šμ„ κ²ƒμž…λ‹ˆλ‹€. μ•½κ°„μ˜ μ˜΅μ…˜μ²˜λŸΌ λ³΄μ΄μ§€λ§Œ λ³΅μž‘μ„±μ„ μΆ”κ°€ν•  κ°€μΉ˜κ°€ μžˆλŠ”μ§€ μ™„μ „νžˆ ν™•μ‹ ν•˜μ§€ λͺ»ν•©λ‹ˆλ‹€.

ν”Όλ“œλ°± ν•­λͺ©μœΌλ‘œ(이 μž₯μ†Œκ°€ μ˜¬λ°”λ₯Έμ§€ ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆκΉŒ?), μš°λ¦¬λŠ” 이것을 μš°μ—°νžˆ λ°œκ²¬ν•˜κ³  맀우 λ†€λžμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” μ•„λ§ˆλ„ 이것 뒀에 μžˆλŠ” κ·Όκ±°λ₯Ό 잘 μ΄ν•΄ν•˜μ§€ λͺ»ν•˜κ² μ§€λ§Œ, 특히 tslintκ°€ 이 μœ„μΉ˜μ—μ„œ μ„Έλ―Έμ½œλ‘ μ„ λΆˆν•„μš”ν•œ κ²ƒμœΌλ‘œ ν‘œμ‹œν•œλ‹€λŠ” 것(즉, μ„Έλ―Έμ½œλ‘ μ„ κ·Έλƒ₯ λ†”λ‘λŠ” 것을 ν—ˆμš©ν•˜μ§€ μ•ŠμŒ)이 ν˜Όλž€μŠ€λŸ¬μ›Œ λ³΄μž…λ‹ˆλ‹€.

ignore-bound-class-methods μ˜΅μ…˜μ„ μ‚¬μš©ν•˜μ—¬ 이전 λ™μž‘μ„ 되돌릴 수 μžˆμŠ΅λ‹ˆλ‹€. μš°λ¦¬λŠ” κΈ°λ³Έ ꡬ성에 λŒ€ν•΄ μ’€ 더 μ˜κ²¬μ„ μˆ˜λ ΄ν•˜κ³  λ°”μΈλ”©λœ 클래슀 λ©”μ„œλ“œλ₯Ό λŒ€λΆ€λΆ„μ˜ TS μ½”λ“œμ—μ„œ 일반 클래슀 λ©”μ„œλ“œμ²˜λŸΌ 보이게 λ§Œλ“€κ³  μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€.

그래, λ‚˜λŠ” κ·Έλ ‡κ²Œ μƒκ°ν–ˆλ‹€. tslint 기본적으둜 μ„Έλ―Έμ½œλ‘ μ΄ ν•„μš”ν•˜κ±°λ‚˜ 일관성 μΈ‘λ©΄μ—μ„œ 였λ₯˜κ°€ 더 많이 λ°œμƒν•˜κ±°λ‚˜ 문제λ₯Ό λ¬΄μ‹œν•  κ²ƒμœΌλ‘œ μ˜ˆμƒν–ˆμ§€λ§Œ ν•΄λ‹Ή μ˜΅μ…˜μ„ λ‹€μ‹œ μΆ”κ°€ν•˜λ©΄ μš°λ¦¬μ—κ²Œ νš¨κ³Όμ μž…λ‹ˆλ‹€.

Intellijμ—μ„œ 였λ₯˜κ°€ λ°œμƒν•˜μ§€ μ•Šλ„λ‘ ν•˜λ €κ³  ν–ˆμŠ΅λ‹ˆλ‹€.

클래슀 ν™”μ‚΄ν‘œ ν•¨μˆ˜ 뒀에 μžˆλŠ” μ„Έλ―Έμ½œλ‘ μ„ μ œκ±°ν•˜λ €κ³  μ‹œλ„ν–ˆλŠ”λ° λ‹€μŒ κ²½κ³ κ°€ ν‘œμ‹œλ©λ‹ˆλ‹€.
image

λ‹€μŒκ³Ό 같이 μ˜΅μ…˜μ„ ν™œμ„±ν™”ν•˜λ €κ³  ν–ˆμŠ΅λ‹ˆλ‹€.
image

κ·ΈλŸ¬λ‚˜ λ‚˜λŠ”μ΄ κ²°κ³Όλ₯Ό μ–»μŠ΅λ‹ˆλ‹€.
image

λ‹€μŒκ³Ό 같이 μ˜΅μ…˜μ„ ν™œμ„±ν™”ν•˜λ €κ³  ν–ˆμŠ΅λ‹ˆλ‹€.
image

κ·ΈλŸ¬λ‚˜ μ„Έλ―Έμ½œλ‘ μ„ λͺ¨λ‘ ν•¨κ»˜ ν™•μΈν•˜λŠ” 것을 μ€‘μ§€ν•©λ‹ˆλ‹€.

tslint 버전: 4.4.2
TS 버전: 2.1.5
인텔리 버전: 2016.3
운영 체제: μœˆλ„μš° 10 x64

μ˜¬λ°”λ₯Έ tslint ꡬ성(λ‚΄κ°€ 그랬던 κ²ƒμ²˜λŸΌ)을 μ°Ύκ³  μžˆλŠ” 이 μŠ€λ ˆλ“œμ— μ˜€λŠ” μ‚¬λžŒλ“€μ„ μœ„ν•΄ - 이에 λŒ€ν•œ μ˜¬λ°”λ₯Έ ꡬ문은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.
"μ„Έλ―Έμ½œλ‘ ": [true, "항상", "λ°”μš΄λ“œ 클래슀 λ©”μ„œλ“œ λ¬΄μ‹œ"]

μ°Έμ‘°: https://palantir.github.io/tslint/rules/semicolon/

@popstr λ„€, 저도 μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

"semicolon": [true, "always", "ignore-bound-class-methods"]

λ¬΄μ‹œν•˜λŠ” 것은 일관성 μΈ‘λ©΄μ—μ„œ 쒋지 μ•Šμ€ 생각이고 ignore-bound-class-methods μ˜΅μ…˜μ΄ μ—†λŠ” κ·œμΉ™μ€ μ—¬μ „νžˆ 버그 κ°€ 있기 λ•Œλ¬Έμ— #3216을 λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.

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