value = Object.assign(new Model(), value)
prefer-object-spread
์ฌ์ฉ
๋ณดํธ๋ผ๊ธฐ ์ค๋ฅ, ๊ฐ์ฒด ํ์ฐ์ ์ฌ์ฉํ๋๋ก ์๋ ์์
์๋ฌด๊ฒ๋ ์๋. ์ด ๊ท์น์ Object.assign
๋ํ ์ฒซ ๋ฒ์งธ ์ธ์๊ฐ ํด๋์ค ์ธ์คํด์ค์ธ ๊ฒฝ์ฐ๋ฅผ ๋ฌด์ํด์ผ ํฉ๋๋ค.
--project
๊ฐ ์ ๊ณต๋๋ฉด ์ฒซ ๋ฒ์งธ ์ธ์์ ์ ํ์ด ํด๋์ค์ ์ ์ฌํ์ง ํ์ธํ ์ ์์ต๋๋ค.new ...
ํ๊ณ ํํ์์ ๋ฌด์ํ๋ ๊ฒ์
๋๋ค.https://github.com/palantir/tslint/issues/2618#issuecomment -303879255์ ๋ณด๊ณ ๋ ๋๋ก
Object.assign
๋ ์ฒซ ๋ฒ์งธ ์ธ์์ ๋ถ์์ฉ์ด ์์ต๋๋ค. (์ด๊ฒ์ด TypeScript๊ฐ { ...x, ...y }
๋ฅผ Object.assign({}, x, y)
๋ณํํ๋ ์ด์ ์
๋๋ค.) ์ฒซ ๋ฒ์งธ ์ธ์๊ฐ ์๋ก์ด ๊ฐ์ฒด ๋ฆฌํฐ๋ด์ธ ๊ฒฝ์ฐ์๋ง ๊ท์น์ด ํ์ฑํ๋์ด์ผ ํฉ๋๋ค.
๊ท์น์ ์ฒซ ๋ฒ์งธ ์ธ์๊ฐ ์๋ก์ด ๊ฐ์ฒด ๋ฆฌํฐ๋ด์ธ ๊ฒฝ์ฐ์๋ง ํ์ฑํ๋์ด์ผ ํฉ๋๋ค.
๊ธ์, ๊ธฐ์ ์ ์ผ๋ก ๋น์ ์ด ์ณ์ต๋๋ค. ๊ทธ๋ฌ๋ ํ๋ก๊ทธ๋๋จธ๊ฐ ์ฒซ ๋ฒ์งธ ์ธ์์ ๋ํ ๋ถ์์ฉ์ ๋ํด ์ฃผ์ํ์ง ์๊ณ _์ค์ ๋ก_ ๊ฐ์ฒด ํ์ฐ๊ณผ ๋์ผํ ์์ ์ ์ํํ๋ ค๊ณ ํ ๋ ์ด์จ๋ ๋ฌธ์๊ฐ ์๋ ๊ฐ์ ์ ๊ณตํ๋ ์ค์๋ฅผ ์ข ์ข ๋ด ๋๋ค. ๊ทธ๋์ ๋๋ ์ฌ์ ํ์ด ๊ท์น์ด ๊ทธ๊ฒ์ ํฌ์ฐฉํ๊ธฐ๋ฅผ ์ํ ๊ฒ์ ๋๋ค. ์๋ง ์ตํธ์ธ์ด ๋ ๋ฏ...
์ฒซ ๋ฒ์งธ ์ธ์๊ฐ ๊ฐ์ฒด ๋ฆฌํฐ๋ด์ด ์๋ ๊ฒฝ์ฐ ๊ท์น์ ๊ฒฐ๊ณผ๊ฐ ๋ฌด์ธ๊ฐ์ ํ ๋น๋ ๊ฒฝ์ฐ์๋ง ์ค๋ฅ๋ฅผ ์์ฑํฉ๋๋ค.
Object.assign์ ๋ฐํ ๊ฐ์ ํ ๋นํ๋ ๊ฒ์ ์ฒซ ๋ฒ์งธ ์ธ์๊ฐ CallExpression, NewExpression ๋๋ ์ด์ ์ ์ฌํ ๊ฒฝ์ฐ์๋ง ์๋ฏธ๊ฐ ์์ต๋๋ค. Identifier ๋๋ PropertyAccessExpression๊ณผ ๊ฐ์ ๋ค๋ฅธ ๋ชจ๋ ๊ฒ์ ์ฌ์ ํ โโ์ค๋ฅ์
๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ ํ ๊ฒ์ฌ๊ธฐ๊ฐ ํ์ํ์ง ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ฒซ ๋ฒ์งธ ์ธ์๊ฐ ๊ฐ์ฒด ๋ฆฌํฐ๋ด์ด ์๋ ๊ฒฝ์ฐ ๊ท์น์ ๊ฒฐ๊ณผ๊ฐ ๋ฌด์ธ๊ฐ์ ํ ๋น๋ ๊ฒฝ์ฐ์๋ง ์ค๋ฅ๋ฅผ ์์ฑํฉ๋๋ค.
Object.assign์ ๋ฐํ ๊ฐ์ ํ ๋นํ๋ ๊ฒ์ ์ฒซ ๋ฒ์งธ ์ธ์๊ฐ CallExpression, NewExpression ๋๋ ์ด์ ์ ์ฌํ ๊ฒฝ์ฐ์๋ง ์๋ฏธ๊ฐ ์์ต๋๋ค. Identifier ๋๋ PropertyAccessExpression๊ณผ ๊ฐ์ ๋ค๋ฅธ ๋ชจ๋ ๊ฒ์ ์ฌ์ ํ โโ์ค๋ฅ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ ํ ๊ฒ์ฌ๊ธฐ๊ฐ ํ์ํ์ง ์์ต๋๋ค.