jshintμ κ°μ΄ ν μ€μ 무μνλ λ°©λ²μ΄ μμ΅λκΉ?
// tslint ignore:line μλνμ§λ§ μλνμ§ μλ κ² κ°μ΅λλ€.
λΆννλ, μ°λ¦¬λ μμ§ κ·Έλ° κ²μ΄ μμ΅λλ€. λΌμΈμ λͺ μμ μΌλ‘ νμ±ν λ° λΉνμ±νν΄μΌ ν©λλ€.
νμ μ μ΄λ»κ² λΉνμ±νν©λκΉ?
https://github.com/palantir/tslint#tslint -rule-flags
ν΄κ²° λ°©λ²μ μ°ΎμΌλ €λ©΄ μ¬κΈ° μλ μ¬λ
/* tslint:disable */ - Disable all rules for the rest of the file
/* tslint:enable */ - Enable all rules for the rest of the file
μ
/* tslint:disable */ window['foo']= window['bar']; /* tslint:enable */
μμμ μ€λͺ ν κ²κ³Ό μ μ¬ν κΈ°λ₯μ ꡬννκΈ° μν μ‘°μ¬κ° μμμ΅λκΉ?
@patsisson μ νν μ΄λ€ κΈ°λ₯μΈκ°μ? νμ¬ λ κ°μ μ£ΌμμΌλ‘ ν μ€μ νμ±ν/λΉνμ±νν μ μμ΅λλ€.
μ΄ κΈ°λ₯μ λ μ₯ν©ν λΌμΈ λΉνμ±νμ
λλ€. ESLint
μλ λ¨μΌ ν κ·μΉ λΉνμ±νλ₯Ό μννλ μ¬λ¬ λ°©λ²μ΄ μμ΅λλ€.
μλ₯Ό λ€μ΄,
// eslint-disable-next-line rule-name
var x; // eslint-disable-line rule1 rule2
λν λ°©λ²μ 볡μ‘ν κ·μΉ λΉνμ±νμ λν μ€λ³΅μ±μΌλ‘ νλ₯νμ§λ§ μΈλΌμΈ(λλ λ€μ μ€)μ μ½λλ₯Ό λ μ€μΌλκ² νλ κ²½ν₯μ΄ μμ΅λλ€(λ¬Όλ‘ μ μκ°μ΄μ§λ§ κ·Έλ κ² λΆν©λ¦¬νμ§λ μμ΅λλ€).
μ΄κ²μ μλλ½λ€:
/* tslint:disable */ window['foo']= window['bar']; /* tslint:enable */
μ΄κ²μ ν¨μ¬ λ μ’μ΅λλ€:
var x; // eslint-disable-line rule1 rule2
μλλ©΄ κ·Έλ₯:
var x; // tslint:disable
κ·Έκ²μ΄ μ€ μ£Όμμ΄λΌλ μ¬μ€μ λ΄κ° μκ°νλ ν μ€λ§ λΉνμ±ννλ€λ κ²μ μλ―Έν©λλ€.
λλ μ΅μ μ κ²½μ°:
var x; // tslint:disable-line
μ΄μ λν PRμ μλ½ν©λλ€. λ€μμ λΉνμ±νμ λν΄ /*
λμ //
/*
μ£Όμμ νμ©ν μ΅κ·Όμ λ€μ κ΄λ ¨λ λ³κ²½ μ¬νμ
λλ€(λ κ°μ μ£Όμμ΄ μ¬μ ν νμν¨): https://github.com/palantir/tslint/pull/1134
λ무 λμ μ μ΄μ§ μλ€λ©΄ μ€λ λ°€μλ PRμ ν κ²μ λλ€.
π μ¬κΈ°μμ ESLintλ₯Ό μμΈν μ΄ν΄λ³΄κ² μ΅λλ€.
someCode(); // tslint:disable-line
// tslint:disable-next-line
someCode();
그리κ³
someCode(); // tslint:disable-line:rule1 rule2
// tslint:disable-next-line:rule1
someCode();
κ·Έκ²μ΄ λ°λ‘ μ κ° λ¬μ±νκ³ μ νλ κ²μ λλ€ :+1:
κ·Έλ¬λ λͺ νμ±μ μν΄ ESLintλ μ½λ‘ μ μ¬μ©νμ§ μμΌλ©° μ€νμΌμ λ€μκ³Ό κ°μ΅λλ€.
// eslint-disable-next-line rule1, rule2
someCode();
μμ ν¬ν¨λ TSLint μ€νμΌ(μ½λ‘ λ° μΌν κ΅¬λΆ κ·μΉ μμ)μ κ³ μνλ κ²μ μ νΈνλ€κ³ κ°μ ν©λλ€.
π μΌκ΄μ±μ μν΄ TSLint μ€νμΌμ κ³ μν©μλ€.
μ λ μ§κΈ μ΄ μμ
μ μννκ³ μμΌλ©° PRμ λ§λ€κΈ° μ μ μ»€λ° μ 리λ₯Ό μννκ³ μμ΅λλ€. μ λ΅μ -line
λ° -next-line
λ³νμ μμ ν ννλ λλ±ν μ£Όμ μ€μμΉλ‘ μ¨κΈ°λ κ²μ΄μμ΅λλ€. μ΄κ²μ λΌμΈ μμ μμΉ( -line
μ€μμΉμ κ²½μ°)λ₯Ό μΆμ νκ³ λ€μ λΌμΈμ λ λΆλΆμ λν 미리보기( -next-line
μ€μμΉμ κ²½μ°)λ₯Ό μννμ¬ μνλ©λλ€. μ΄κ²λ€μ λ μ₯ν©ν νμμ λ³μΉ μν μ νκΈ° λλ¬Έμ μμ£Ό μ μλνκ³ λΆμμ©μ΄ μ΅μνλ©λλ€.
λ΄ PRμ μμλλ‘ λ°κΈ° μ μ μ°Έκ³ νμΈμ. λΉνμ±νλ κ°κ²© μ½λκ° μλνλ λ°©μμΌλ‘ μΈν΄ λ€μκ³Ό κ°μ μμ μ μνν μ μμ΅λλ€.
// tslint:disable-next-line:quotemark variable-name
var AAAaA = 'test' // tslint:enable-line variable-name
μμ§ν λκ΅°κ°κ° κ·Έλ° μΌμ ν리λΌκ³ λ κΈ°λνμ§ μμ΅λλ€. νμ§λ§ μ λ μ¬κΈ°μμ μΈκΈνκ³ μΆμμ΅λλ€. μ¬μ ν μ΄μ κ°μ νμ€ μ€μ²©μ μνν μ μμ΅λλ€.
// tslint:disable
var AAAaA = 'test' // tslint:enable-line:quotemark
// tslint:enable-next-line:variable-name
var AAAaA = 'test'
// tslint:enable
ꡬνμ λν μ§λ¬Έ, μ΄κ²μ΄ μλν©λκΉ?
/**
* this is a very long line and violate max-line-length. // tslint:disable-line:max-line-length
*/
μλμ, μ€μμΉ μ£Όμμ κ·Έλ° μμΌλ‘ ꡬ문 λΆμλμ§ μμΌλ©° μ¬λ°λ₯Έ νμμ΄μ΄μΌ ν©λλ€. κ·νμ μλ₯Ό λ―ΏμΌλ©° μ¬λ¬ μ€ μ£Όμ μΈλΆμ ν μ€ λΉνμ±ν μ£Όμμ λ°°μΉνλ©΄ μμλλ‘ μλν΄μΌν©λλ€.
μ€λͺ κ°μ¬ν©λλ€.
@lijunle λ°©κΈ κ·νμ μλ₯Ό λ€μ λ°©λ¬Ένμ¬ λ΄ μ€λͺ μ΄ μ€μ λ‘ λ€μ μλͺ»λμλ€κ³ μκ°ν©λλ€. ν μ€ λΉνμ±νλ‘ μνλ κ²°κ³Όλ₯Ό μ»μ μ μλ€κ³ μκ°νμ§ μμ΅λλ€. λλ νμκ° μ 체 μ¬λ¬ μ€ μ£Όμμ μ μ νκ² λΉνμ±ννκΈ° μν΄ λ€μ μ κ·Όν μ μμ κ²μ΄λΌκ³ μκ°ν©λλ€. μ¬λ¬ μ€ μ£Όμμμ κ·μΉμ λΉνμ±ννλ €λ©΄ μ£Όμμ μ€μμΉ μμΌλ‘ λνν΄μΌ ν©λλ€.
μμ μ΄λ κ²λ μλνμ§ μμ΅λλ€
κΈ°λ₯ μ μ λλ μ΄λ―Έ ꡬνλ μ μμ λν΄ μ΄μΌκΈ°νκ³ μμ΅λκΉ?
λ°λΌνκΈ° νλ
@phil123456 https://github.com/palantir/tslint#rule -flags
// tslint:disable-next-line <optional rule identifier>
var foo = 123;
^λ§ν¬κ° μ¬κΈ°λ‘ μ΄λνμ΅λλ€: https://github.com/palantir/tslint/blob/master/docs/usage/rule-flags/index.md
μ΄λ° μ μ₯. ν΄λΉ λ¬Έμμλ "μ΅μ " λλ "무μ"λΌλ λ¨μ΄κ° λνλμ§ μμ΅λλ€. μ λ₯Ό μ΄ λ¬Έμ λ‘ μ΄λκΈ° μν΄ μΌλ§λ λ§μ μΈν°λ· κ²μμ΄ νμνλμ§ λ―Ώμ μ μμ΅λλ€. μμ λͺ¨λ λ΄μ©μ μ½κ³ μ§μλκ³ λ¬Έμνλ κΈ°λ₯μ΄λΌλ κ²μ μκ² λμμ§λ§ μ μ ν ν€μλκ° λ¬Έμμ μμΌλ―λ‘ Googleμμλ λΆκ°λ₯ν©λλ€. μ 체 리ν¬μ§ν 리λ₯Ό 볡μ νκ³ μ΄μ λν PRμ μ μΆν΄μΌ ν©λκΉ, μλλ©΄ .md νμΌμ λν μμ μ¬νμ μ μνλ λ λΉ λ₯Έ λ°©λ²μ΄ μμ΅λκΉ?
@pbarranis κΈ°λ₯ μμ²μΌλ‘ μ ν°μΌμ λ§λ€ μ μμ΅λλ€. κ·Έλ€μ΄ λ³κ²½νμ§ μμΌλ©΄ PRμ λ§λλ κ²μ΄ λ€μ λ¨κ³κ° λ μ μμ΅λλ€.
그건 κ·Έλ κ³ , λΉμ μ λν κ°μ μ€μμ κ·Έκ²μ ν μ μμ΅λλ€:
console.log("poop"); // tslint:disable-line no-console
μ μ΄λ [email protected]λΆν°.
ordered-imports
μ κ°μ κ·μΉμμλ μλνμ§ μμ΅λλ€.
//@ts-ignore
https://palantir.github.io/tslint/rules/
//@ts-ignore
https://palantir.github.io/tslint/rules/
λΆννλ μ΄ νμ΄μ§λ μ΄κ²μ μ¬μ©μ κΈμ§νλ λ°©λ²λ§ 보μ¬μ€λλ€. μ μ νκ² μ¬μ©νλ λ°©λ²μ 보μ¬μ£Όμ§ μκ±°λ μ¬μ©ν λ tsLintκ° λ¬΄μνλ μ λλ₯Ό μ€λͺ
νμ§ μμ΅λλ€. κ·μΉμ μ΅μ νλ λ°©λ²μ μ€λͺ
νλ μ΄ νμ΄μ§μμ μΈκΈλμ§ μμ μ΄μ λ₯Ό λͺ¨λ₯΄κ² μ΅λλ€. https://palantir.github.io/tslint/usage/rule-flags/
κ·Έλ¦¬κ³ μ μ΄ νμ΄μ§μ "μ΅μ " λλ "무μ"λΌλ λ¨μ΄κ° μΈκΈλμ§ μμ Googleμ μ¬μ©ν λ μ½κ² μ°Ύμ μ μλμ§ λ¬»λ μμ μ견μ λμν©λλ€.
μ°Έκ³ λ‘ μ΄ νμ΄μ§μλ μ¬ν΄ TSLintκ° EOLμ΄λΌκ³ λμ μμ΅λλ€. https://github.com/palantir/tslint#tslint -rule-flags
μ, tslintλ κ²°κ΅ (μμ§μ μλ) eslintμ λ³ν©λλ―λ‘ μ’μ κ² κ°μμ.
μμ μ μ΄μ tslint
κ° λ€μ μ€ λ¬΄μ κΈ°λ₯μ μ§μνλ€λ κ²μ
λλ€.
μμ:
// tslint:disable-next-line
λλ
// tslint:disable-next-line:rule1 rule2 rule3
μμΈν λ΄μ© λ° μλ https://palantir.github.io/tslint/usage/rule-flags/ λ₯Ό μ°Έμ‘°
π€ μμ! π TSLintλ λ μ΄μ μ¬μ©λμ§ μμΌλ©° π typescript-eslintλ‘ μ ν ν΄μΌ
π μ΄ μ΄μλ λ μ΄μμ λΆνμν ν λ‘ μ λ°©μ§νκΈ° μν΄ μ κ·Έκ³ μμ΅λλ€. κ°μ¬ν©λλ€! π
κ°μ₯ μ μ©ν λκΈ
ν΄κ²° λ°©λ²μ μ°ΎμΌλ €λ©΄ μ¬κΈ° μλ μ¬λ
μ
/* tslint:disable */ window['foo']= window['bar']; /* tslint:enable */