Tslint: κΈ°λŠ₯ μš”μ²­: νŠΉμ • κ·œμΉ™μ— λŒ€ν•œ 파일 μ œμ™Έ ν—ˆμš©

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

문제

μƒμ„±λœ ν•˜λ‚˜μ˜ νŒŒμΌμ„ μ œμ™Έν•˜κ³  λ‚΄ ν”„λ‘œμ νŠΈμ˜ λͺ¨λ“  TypeScript νŒŒμΌμ— "클래슀 이름" κ·œμΉ™ 을 μ‚¬μš©ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

ν˜„μž¬ κ·œμΉ™ μ˜΅μ…˜ ꡬ성 ν˜•μ‹

λ¬Έμ„œλ₯Ό 기반으둜

κ·œμΉ™ μ˜΅μ…˜μ€ κ·œμΉ™μ΄ μ‚¬μš©λ˜λŠ”μ§€ μ—¬λΆ€λ₯Ό λ‚˜νƒ€λ‚΄λŠ” λΆ€μšΈ μ°Έ/거짓 κ°’μ΄κ±°λ‚˜ λΆ€μšΈμ΄ λͺ©λ‘μ΄ μ•„λ‹Œ κ²½μš°μ™€ λ™μΌν•˜κ²Œ μ œκ³΅ν•˜λŠ” λͺ©λ‘ [λΆ€μšΈ, ...]일 수 있으며 λͺ©λ‘μ˜ λ‚˜λ¨Έμ§€ 뢀뢄은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. 검사 λŒ€μƒμ„ κ²°μ •ν•  κ·œμΉ™μ— λŒ€ν•œ μ˜΅μ…˜

λ”°λΌμ„œ 기본적으둜 κ·œμΉ™μ„ ν™œμ„±ν™”ν•˜λ €λ©΄ λ‹€μŒκ³Ό 같이 κ·œμΉ™ μ˜΅μ…˜ ν˜•μ‹κ³Ό κ΄€λ ¨ν•˜μ—¬ 두 가지 μ˜΅μ…˜λ§Œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

{
    "rules": {
        "class-name": true,
        "some-otherrule": [ true, arg1, arg2, arg3],
        ...
    }
}

λ”°λΌμ„œ ν˜„μž¬ ν˜•μ‹μ—μ„œλŠ” 일뢀 νŒŒμΌμ— λŒ€ν•œ νŠΉμ • κ·œμΉ™μ„ ν™œμ„±ν™”/λΉ„ν™œμ„±ν™”ν•  수 μ—†μŠ΅λ‹ˆλ‹€. 였λ₯˜ κ²€μ‚¬μ—μ„œ ν•˜λ‚˜μ˜ νŒŒμΌμ„ μ œμ™Έν•˜λ €λ©΄ λͺ¨λ“  κ·œμΉ™μ— λŒ€ν•΄ ν•΄λ‹Ή νŒŒμΌμ„ μ œμ™Έν•΄μ•Ό ν•©λ‹ˆλ‹€.

μΆ”κ°€ κ·œμΉ™ μ˜΅μ…˜ ꡬ성 ν˜•μ‹ μ œμ•ˆ

일뢀 파일 μ œμ™Έλ₯Ό ν—ˆμš©ν•˜λ €λ©΄ κ³ κΈ‰ ν˜•μ‹

λͺ©λ‘ [boolean, ...] μ—¬κΈ°μ„œ λΆ€μšΈμ€ λͺ©λ‘μ΄ μ•„λ‹Œ κ²½μš°μ™€ λ™μΌν•˜κ²Œ μ œκ³΅ν•©λ‹ˆλ‹€.
"some-otherrule": [ true, arg1, arg2, arg3],

포함/μ œμ™Έλ˜λŠ” νŒŒμΌμ„ μ •μ˜ν•˜λŠ” 첫 번째 μΈμˆ˜κ°€ λΆ€μšΈ(ν˜„μž¬μ™€ 같이) λ˜λŠ” λ°°μ—΄(λ˜λŠ” 배열에 λΉ„ν•΄ κ°œμ²΄κ°€ 더 λͺ…ν™•ν• κΉŒμš”?)이 될 수 μžˆλ„λ‘ ν™•μž₯될 수 μžˆμŠ΅λ‹ˆλ‹€.

λ‹€μŒ ꡬ문을 염두에 두고 μžˆμŠ΅λ‹ˆλ‹€.
"some-otherrule": [ [includeGlobPattern, excludeGlobPattern], arg1, arg2, arg3],
예λ₯Ό λ“€μ–΄
"some-otherrule": [ ["**/*", "**/generated.ts"], arg1, arg2, arg3],
λ˜λŠ” λ°°μ—΄ λŒ€μ‹  객체λ₯Ό μ‚¬μš©ν•˜λŠ” 경우 follwogin ꡬ문이 훨씬 더 μ‰¬μšΈ κ²ƒμž…λ‹ˆλ‹€.
"some-otherrule": [ {exclude: "**/generated.ts"}, arg1, arg2, arg3],
μ—¬κΈ°μ„œ include 속성은 기본적으둜 λͺ¨λ“  파일둜 μ„€μ •λ©λ‹ˆλ‹€.

API Feature Request

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

@Chowarmaanκ³Ό λΉ„μŠ·ν•œ μ‚¬μš© 사둀가 μžˆμŠ΅λ‹ˆλ‹€.

*.test.ts 와 같이 개발 쒅속성을 μ‚¬μš©ν•˜λŠ” ν…ŒμŠ€νŠΈ 파일 enzyme μžˆμŠ΅λ‹ˆλ‹€.
tslint.json no-implicit-dependencies κ·œμΉ™μ΄ ν™œμ„±ν™”λ˜μ–΄ 있고 *.test.ts λŒ€ν•΄μ„œλ§Œ 이 κ·œμΉ™μ„ λΉ„ν™œμ„±ν™”ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. ν•΄λ‹Ή ν…ŒμŠ€νŠΈ 파일이 λͺ¨λ‘ 같은 폴더에 μžˆλŠ” 것은 μ•„λ‹ˆλ―€λ‘œ μ§€κΈˆ λ‹Ήμž₯ λ‹€μŒμ„ λ„£μ–΄μ•Ό ν•©λ‹ˆλ‹€.

/* tslint:disable:no-implicit-dependencies */

μ„±κ°€μ‹  각 ν…ŒμŠ€νŠΈ 파일의 μ‹œμž‘ λΆ€λΆ„μ—μ„œ

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

λ‹¨μˆœνžˆ λ‹€μŒμ„ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” μ΄μœ λŠ” λ¬΄μ—‡μž…λ‹ˆκΉŒ?

/* tslint:disable:class-name */
// your generated file here

μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆκΉŒ?

그것은 μ‹€μ œλ‘œ μž‘λ™ν•˜κ²Œ λ§Œλ“œλŠ” 데 μ‚¬μš©λ  수 μžˆμ§€λ§Œ TypeScript 생성기 μˆ˜μ •μ„ ν”Όν•˜κΈ° μœ„ν•΄(λ˜λŠ” μƒμ„±λœ νŒŒμΌμ— tslint 힌트λ₯Ό μΆ”κ°€ν•˜μ—¬ 생성 ν”„λ‘œμ„ΈμŠ€μ— λ³΅μž‘μ„±μ„ μΆ”κ°€ν•˜κΈ° μœ„ν•΄) 이 κΈ°λŠ₯ μš”μ²­μ„ μ œμΆœν–ˆμŠ΅λ‹ˆλ‹€.
μ™€μΌλ“œμΉ΄λ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ 각 νŒŒμΌμ—μ„œκ°€ μ•„λ‹ˆλΌ tslint κ΅¬μ„±μ—μ„œ νŠΉμ • μœ ν˜•μ˜ μ†ŒμŠ€(main/unitTests/e2eTests)μ—λ§Œ νŠΉμ • κ·œμΉ™μ„ μ„ μ–Έμ μœΌλ‘œ μ μš©ν•˜λŠ” 데 도움이 될 수 μžˆμŠ΅λ‹ˆλ‹€.

μ–΄λ–»κ²Œ μƒκ°ν•˜λ‚˜μš”?

νŒŒμΌμ— 주석을 μΆ”κ°€ν•˜μ§€ μ•ŠμœΌλ €λ©΄ Linting을 μœ„ν•΄ νŒŒμΌμ„ tslint 에 μ „λ‹¬ν•˜μ§€ λ§ˆμ‹­μ‹œμ˜€.

(λΆ€λΆ„) 파일 μ œμ™Έλ₯Ό λ‹¬μ„±ν•˜λŠ” 방법이 두 가지 이상 μžˆμ„ λ•Œ λ‹€λ₯Έ 곳에 μ˜΅μ…˜μ„ μΆ”κ°€ν•˜κΈ°μ—λŠ” λ„ˆλ¬΄ 무겁게 λŠκ»΄μ§‘λ‹ˆλ‹€.

νŒŒμΌμ— 주석을 μΆ”κ°€ν•˜μ§€ μ•ŠμœΌλ €λ©΄ linting을 μœ„ν•΄ νŒŒμΌμ„ tslint에 μ „λ‹¬ν•˜μ§€ λ§ˆμ‹­μ‹œμ˜€.

그것이 λ‚΄κ°€ ν•œ μΌμ΄μ§€λ§Œ 이제 μ œμ™Έλœ νŒŒμΌμ— λŒ€ν•΄ μ–΄λ–€ κ·œμΉ™λ„ ν™•μΈλ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

(λΆ€λΆ„) 파일 μ œμ™Έλ₯Ό λ‹¬μ„±ν•˜λŠ” 방법이 두 가지 이상 μžˆμ„ λ•Œ λ‹€λ₯Έ 곳에 μ˜΅μ…˜μ„ μΆ”κ°€ν•˜κΈ°μ—λŠ” λ„ˆλ¬΄ 무겁게 λŠκ»΄μ§‘λ‹ˆλ‹€.

λ„€, 그것이 μ œκ°€ λ‹΅λ³€μœΌλ‘œ μ˜ˆμƒν•œ κ²ƒμž…λ‹ˆλ‹€.

μ‹€μ œλ‘œ 이것이 κ΅¬ν˜„λœλ‹€λ©΄, 포함 및 μ œμ™Έ νŒ¨ν„΄μ— λŒ€ν•œ μƒμˆ˜λ₯Ό μ •μ˜ν•  수 μžˆλ‹€λ©΄ μœ λ¦¬ν•  κ²ƒμž…λ‹ˆλ‹€. λ”°λΌμ„œ ν•„ν„°λ§ν•˜λ €λŠ” λͺ¨λ“  κ·œμΉ™μ— λ™μΌν•œ 포함/μ œμ™Έ νŒ¨ν„΄μ„ λ³΅μ‚¬ν•˜μ—¬ 뢙여넣을 ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€. 같은 νŒŒμΌλ“€... 예제λ₯Ό 더 λ³΅μž‘ν•˜κ²Œ λ§Œλ“œλŠ” 것이 합리적이지 μ•Šμ„ μˆ˜λ„ μžˆλ‹€κ³  μƒκ°ν–ˆμ§€λ§Œ 염두에 λ‘μ—ˆμŠ΅λ‹ˆλ‹€.

{
    "constants": {
        "generatedFilesGlob": "**/generated.ts",
        "someOtherConstant": "some other value, that could be reused",
        ...
    },
    "rules": {
        "class-name": true,
        "some-otherrule": [ true, "arg1", "arg2", "arg3"],
        "rule-with-exclude": [ {"exclude": "generatedFilesGlob"}, "arg1", "arg2", "arg3"],
        ...
    }
}

κ·ΈλŸ¬λ‚˜ ꡬ성 νŒŒμΌμ„ ꡬ문 λΆ„μ„ν•˜κΈ°κ°€ 더 μ–΄λ €μ›Œμ§‘λ‹ˆλ‹€. json 파일 외에도 ꡬ성을 μœ„ν•œ js 파일 지원에 λŒ€ν•΄ μƒκ°ν•˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄:

const generatedFilesGlob = "**/generated.ts";
const allExceptGenerated = {exclude: generatedFilesGlob};
module.exports = {
    "rules": {
        "class-name": true,
        "some-otherrule": [ true, "arg1", "arg2", "arg3"],
        "rule-with-exclude": [ allExceptGenerated , "arg1", "arg2", "arg3"],
        "another-rule-with-the-same-exclude-pattern": [ allExceptGenerated , "arg1", "arg2", "arg3"],
        ...
    }
}

λͺ¨λ“ˆκ³Ό ν•¨κ»˜ JavaScript νŒŒμΌμ„ μ‚¬μš©ν•˜λ©΄(gulp와 같은) 또 λ‹€λ₯Έ 이점이 μžˆμŠ΅λ‹ˆλ‹€. 주석 μ²˜λ¦¬κ°€ κ°€λŠ₯ν•˜κ³  λ°°μ—΄μ˜ λ§ˆμ§€λ§‰ μš”μ†Œ λ˜λŠ” 객체의 속성 뒀에 μ˜€λŠ” μ‰Όν‘œμ— λŒ€ν•΄ κ·Έλ ‡κ²Œ μ—„κ²©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

@atsu85 ν₯미둜운 λ¬Έμ œμ§€λ§Œ @myitcvκ°€ 지적 tslint.json 파일 λͺ©λ‘/κΈ€λ‘œλΈŒλ₯Ό λ„μž…ν•˜λŠ” 것을 κΊΌλ¦½λ‹ˆλ‹€. λ‚˜λŠ” TSLintκ°€ λ‹¨μˆœνžˆ .json 파일 외에도 ꡬ성을 μœ„ν•΄ .js νŒŒμΌμ„ ν—ˆμš©ν•΄μ•Ό ν•œλ‹€λŠ” 데 λ™μ˜ν•©λ‹ˆλ‹€. μ‚¬μš© 사둀λ₯Ό ν•΄κ²°ν•˜λŠ” 데 도움이 될 것이라고 μƒκ°ν•©λ‹ˆλ‹€. 두 개의 tslint λΉŒλ“œ μž‘μ—…(일반 μ†ŒμŠ€μš© ν•˜λ‚˜, μƒμ„±λœ μ†ŒμŠ€μš© ν•˜λ‚˜)을 μ„€μ •ν•˜κ³  ν•˜λ‚˜μ—μ„œ class-name κ·œμΉ™μ„ ν”„λ‘œκ·Έλž˜λ° λ°©μ‹μœΌλ‘œ λΉ„ν™œμ„±ν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ™μΌν•œ tslintConfig.js νŒŒμΌμ— μžˆμŠ΅λ‹ˆλ‹€.

.js ꡬ성 파일 지원을 μœ„ν•΄ #1065 제좜

μΆ©λΆ„νžˆ κ³΅ν‰ν•©λ‹ˆλ‹€. js ꡬ성 파일만 μ‚¬μš©ν•˜λ„λ‘ 이 문제λ₯Ό μ’…λ£Œν•˜κ² μŠ΅λ‹ˆλ‹€.

이해가 될 수 μžˆλŠ” μ‚¬μš© 사둀가 μžˆμŠ΅λ‹ˆλ‹€. 쒋은 μ½”λ”© 방법이 ν…ŒμŠ€νŠΈμ—λ„ μ μš©λ˜λ―€λ‘œ λŒ€λΆ€λΆ„μ˜ Typescript TSLint κ·œμΉ™μ„ κ³΅μœ ν•˜λ €λŠ” ν…ŒμŠ€νŠΈ 파일(*.spec.ts)이 μžˆμŠ΅λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ λ‚΄ μ½”λ“œμ— 5κ°€ 없도둝 'λ§ˆλ²•μ˜ 숫자' κ·œμΉ™μ— λŒ€ν•΄ κ΅¬μ„±λœ λͺ‡ 가지 μƒμˆ˜λ₯Ό ν…ŒμŠ€νŠΈν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.
(Foo.substr(0,5);
κ·ΈλŸ¬λ‚˜ 그것이 const인지 ν™•μΈν•˜μ‹­μ‹œμ˜€
(Foo.substr(0,CONSTANT.FIVE);

λ”°λΌμ„œ 곡톡 νŒŒμΌμ— ν¬ν•¨λœ λ‚΄ const에 λŒ€ν•œ ν…ŒμŠ€νŠΈ μ‚¬λ‘€μ—λŠ” const FIVE = 5κ°€ 항상 μ„€μ •λ˜μ–΄ μžˆλŠ”μ§€ ν™•μΈν•˜λŠ” ν…ŒμŠ€νŠΈκ°€ μžˆμŠ΅λ‹ˆλ‹€. ν…ŒμŠ€νŠΈμ—μ„œ 맀직 λ„˜λ²„κ°€ μ‚¬μš©λ˜κΈ° λ•Œλ¬Έμ— expect(CONSTANTS.FIVE).toBe(5); ν…ŒμŠ€νŠΈλŠ” TSLint 검사에 μ‹€νŒ¨ν•©λ‹ˆλ‹€. 이 λ°©λ²•μœΌλ‘œ λͺ¨λ“  μƒμˆ˜λ₯Ό ν…ŒμŠ€νŠΈν•˜μ§€λŠ” μ•Šμ§€λ§Œ μ΄λŸ¬ν•œ 숫자 섀정을 ν™•μΈν•˜μ—¬ νŠΉμ • 크기λ₯Ό μœ μ§€ν•΄μ•Ό ν•˜λ―€λ‘œ λ³€κ²½λ˜μ§€ μ•ŠλŠ”μ§€ ν™•μΈν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

두 가지 λ‹€λ₯Έ TSLint ꡬ성을 μ‚¬μš©ν•  수 μžˆμ§€λ§Œ λ™κΈ°ν™”λ˜μ§€ μ•Šκ±°λ‚˜ μƒˆ κ·œμΉ™μ„ μΆ”κ°€ν•  λ•Œ μ—¬λŸ¬ μœ„μΉ˜μ—μ„œ μˆ˜ν–‰ν•΄μ•Ό ν•˜λŠ” 것을 ν”Όν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

이 νŠΉμ • ν…ŒμŠ€νŠΈμ— λŒ€ν•΄ /* tslint:disable :no-magic-numbers*/λ₯Ό μˆ˜ν–‰ν•  수 μžˆμ§€λ§Œ ν…ŒμŠ€νŠΈ 파일의 λ‹€λ₯Έ κ²½μš°μ—λŠ” μ˜ˆμ™Έκ°€ ν•„μš”ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 각 *.spec.tsλ₯Ό μ—…λ°μ΄νŠΈν•˜λŠ” λŒ€μ‹  κ·œμΉ™μ— λŒ€ν•œ μ „μ—­ νŒ¨ν„΄μ΄ μž‘λ™ν•©λ‹ˆκΉŒ?

@Chowarmaanκ³Ό λΉ„μŠ·ν•œ μ‚¬μš© 사둀가 μžˆμŠ΅λ‹ˆλ‹€.

*.test.ts 와 같이 개발 쒅속성을 μ‚¬μš©ν•˜λŠ” ν…ŒμŠ€νŠΈ 파일 enzyme μžˆμŠ΅λ‹ˆλ‹€.
tslint.json no-implicit-dependencies κ·œμΉ™μ΄ ν™œμ„±ν™”λ˜μ–΄ 있고 *.test.ts λŒ€ν•΄μ„œλ§Œ 이 κ·œμΉ™μ„ λΉ„ν™œμ„±ν™”ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. ν•΄λ‹Ή ν…ŒμŠ€νŠΈ 파일이 λͺ¨λ‘ 같은 폴더에 μžˆλŠ” 것은 μ•„λ‹ˆλ―€λ‘œ μ§€κΈˆ λ‹Ήμž₯ λ‹€μŒμ„ λ„£μ–΄μ•Ό ν•©λ‹ˆλ‹€.

/* tslint:disable:no-implicit-dependencies */

μ„±κ°€μ‹  각 ν…ŒμŠ€νŠΈ 파일의 μ‹œμž‘ λΆ€λΆ„μ—μ„œ

이것은 ν…ŒμŠ€νŠΈ 파일의 맨 μœ„μ— λΉ„ν™œμ„±ν™”λ₯Ό μΆ”κ°€ν•  수 μžˆλŠ” @RomanGotsiy 와 λ§ˆμ°¬κ°€μ§€λ‘œ λ‚΄κ°€ κ²ͺκ³  μžˆλŠ” μœ μ‚¬ν•œ λ¬Έμ œμ΄μ§€λ§Œ 각 νŒŒμΌμ— λŒ€ν•΄ λ²ˆκ±°λ‘œμ›Œμ§‘λ‹ˆλ‹€. μ œμ™Έ νŒŒμΌμ€ νŠΉμ • νŒ¨ν„΄ 파일(ν…ŒμŠ€νŠΈ 파일, *.spec.ts)에 λŒ€ν•œ κ·œμΉ™μ„ μ œμ™Έν•  수 있고 ν•„μš”ν•  λ•Œ 더 λ§Žμ€ κ·œμΉ™μ„ ν™œμ„±ν™”ν•˜κ³  ν…ŒμŠ€νŠΈλ₯Ό ν—ˆμš©ν•  수 μžˆλŠ” ν•˜λ‚˜μ˜ κΉ¨λ—ν•œ ꡬ성 파일이 μžˆμœΌλ―€λ‘œ 도움이 λ©λ‹ˆλ‹€. 그듀을 μ‚¬μš©ν•˜κΈ° μœ„ν•΄. 그러면 μ œμ™Έ 파일 λͺ©λ‘μ— 각 κ·œμΉ™μ— 파일 μ œμ™Έλ₯Ό μΆ”κ°€ν•˜λŠ” λŒ€μ‹  λΉ„ν™œμ„±ν™”ν•˜λ €λŠ” κ·œμΉ™λ§Œ 포함될 수 μžˆμŠ΅λ‹ˆκΉŒ?

이것. 100%. ν…ŒμŠ€νŠΈ 쒅속성이 μž‘μ—… 곡간에 λ‚˜μ—΄λ˜μ–΄ μžˆλŠ” monorepo에 이 λ¬Έμ œκ°€ μžˆμœΌλ―€λ‘œ tslintλŠ” no-implicit-dependencies λŒ€ν•΄ 울고 μžˆμŠ΅λ‹ˆλ‹€. IDE λ¦°νŒ…μ΄ 계속 μž‘λ™ν•˜λ €λ©΄ 단일 ꡬ성 파일둜 μˆ˜ν–‰ν•΄μ•Ό ν•©λ‹ˆλ‹€.

이 λ¬Έμ œλŠ” #3447과도 관련이 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

이 였래된 μŠ€λ ˆλ“œμ—λ„ μΆ”κ°€ν•˜κ² μŠ΅λ‹ˆλ‹€. λ‚΄ Angular ν”„λ‘œμ νŠΈμ—μ„œ NgRx μ €μž₯μ†Œλ₯Ό κ΅¬ν˜„ν•˜λŠ” μ€‘μž…λ‹ˆλ‹€. ν•¨μˆ˜μ— λŒ€ν•œ const μ°Έμ‘°λ₯Ό 내보낼 λ•Œ AOT λΉŒλ“œκ°€ μ €μ—κ²Œ μ†Œλ¦¬λ₯Ό μ§€λ¦…λ‹ˆλ‹€...

export const reducer = ( state = initialState, action: CurrentAction): CurrentState => {...}

Function expressions are not supported in decorators in 'reducers' 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€. λ¬Έμ œλŠ” 린트 κ·œμΉ™μœΌλ‘œ 인해 λ°œμƒν•©λ‹ˆλ‹€. ν”„λ‘œμ νŠΈ μ „μ²΄μ—μ„œ only-arrow-functions κ·œμΉ™μ„ ꡬ체적으둜 ν™œμ„±ν™”ν–ˆμŠ΅λ‹ˆλ‹€... 이 νŠΉμ • κ·œμΉ™μ— λŒ€ν•œ 예둜 *.reducer.ts νŒŒμΌμ„ μ œμ™Έν•˜λ„λ‘ μ œμ™Έμ— νŒ¨ν„΄ 일치λ₯Ό μΆ”κ°€ν•˜λŠ” 것이 μ’‹μ§€λ§Œ λ‹€λ₯Έ λͺ¨λ“  νŒŒμΌμ— λŒ€ν•΄ κ·ΈλŒ€λ‘œ μœ μ§€λ©λ‹ˆλ‹€.

μžˆλŠ” κ·ΈλŒ€λ‘œ λͺ¨λ“  감속기 파일의 파일 맨 μœ„μ— 이 쀄을 μΆ”κ°€ν•˜λŠ” 것은 λ²ˆκ±°λ‘­μŠ΅λ‹ˆλ‹€. 더 쒋은 방법이 μžˆμ„ 것 κ°™μŠ΅λ‹ˆλ‹€.

이것도 λ„€ν¬λ‘œλ²”ν•‘. Vue ν”„λ‘œμ νŠΈμ— tslint-microsoft-contribλ₯Ό μΆ”κ°€ν•˜κ³  .vue νŒŒμΌμ— κ·œμΉ™ 폭탄을 μΆ”κ°€ν•˜λ €κ³  ν•©λ‹ˆλ‹€. 이것은 κ·œμΉ™ μž‘μ„±μžκ°€ μ›ν•˜λŠ” 경우 ν•΄λ‹Ή 버그λ₯Ό μˆ˜μ •ν•˜κΈ° 전에 이와 같은 λ¬Έμ œμ— λŒ€ν•œ μœ μš©ν•œ ν•΄κ²° 방법이 될 수 μžˆμŠ΅λ‹ˆλ‹€. λ‚΄κ°€ μ“°λŠ” λͺ¨λ“  Vue νŒŒμΌμ— λ§Žμ€ κ·œμΉ™μ„ λΉ„ν™œμ„±ν™”ν•˜λŠ” 주석을 μΆ”κ°€ν•˜λŠ” 것은 μ‹€μ œλ‘œ λ²ˆκ±°λ‘­μŠ΅λ‹ˆλ‹€. λ˜ν•œ UI μ½”λ“œμ—μ„œ μ•½κ°„ 덜 μ—„κ²©ν•˜κ±°λ‚˜ κΈ°λ³Έ 내보내기 μ‚¬μš©κ³Ό 같은 ν”„λ ˆμž„μ›Œν¬ κ΄€μš©κ΅¬λ₯Ό μ²˜λ¦¬ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

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