๊ธฐ์กด ํ๋ก์ ํธ์ ์ต์ ๋ฒ์ ์ @types/styled-components๋ฅผ ์ถ๊ฐํ๋ฉด ์ต์ [email protected] ์ ์ฌ์ฉํ์ฌ ๋น๋ ์๊ฐ์ด ์ฝ 1-2๋ถ
์ด seed repo ๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ ๋ฒ์ ์ ํ ์คํธํ์ต๋๋ค.
w/o 2.3s
4.0.0 5.6s
4.1.0 8.0s
4.1.5 8.0s
4.1.10 10.1s
4.1.11 90.1s
4.1.12 97.1s
๋ด ์ปดํจํฐ๋ i7-6700HQ CPU @ 2.60GHz๊ฐ ์ฅ์ฐฉ๋ Linux 4.18.0(Ubuntu 18.10) ๋ ธํธ๋ถ์ ๋๋ค.
๋ฆด๋ฆฌ์ค 4.1.11์ด ์ด ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋ ๊ฒ์ด ๋ถ๋ช ํ ๊ฒ ๊ฐ์ต๋๋ค. ์ด ๋ฆด๋ฆฌ์ค์ PR์ #33061์ ๋๋ค. ์ ๊ทธ๋ฐ์ง๋ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ปดํ์ผ๋ฌ์ ๋ด๋ถ๋ฅผ ํํค์ณ์ ์ด๋์์ ๋งํ๋์ง ์์๋ณด๋ ค๊ณ ํ์ง๋ง ์ดํดํ ์ ์์์ต๋๋ค.
@types/xxxx
ํจํค์ง๋ฅผ ์ฌ์ฉํด ๋ณด์๋๋ฐ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค.Definitions by:
in index.d.ts
) ๋๋ตํ๋ค.์ด๊ฒ์ typescript 3.3์์๋ ๋ฐ์ํฉ๋๊น?
๋๋ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๊ฒฝํํ๋ค
ํจํค์ง.json
devDependency
"@babel/core": "^7.4.0",
"@babel/plugin-proposal-class-properties": "^7.4.0",
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
"@babel/plugin-transform-async-to-generator": "^7.4.0",
"@babel/preset-env": "^7.4.2",
"@babel/preset-react": "^7.0.0",
"@babel/preset-typescript": "^7.3.3",
"babel-jest": "^24.5.0",
"babel-loader": "^8.0.5",
"babel-plugin-styled-components": "^1.10.0",
"css-loader": "^2.1.1",
"file-loader": "^3.0.1",
"html-webpack-plugin": "^3.2.0",
"jest": "^24.5.0",
"mini-css-extract-plugin": "^0.5.0",
"node-sass": "^4.11.0",
"react-svg-loader": "^2.1.0",
"regenerator-runtime": "^0.13.2",
"sass-loader": "^7.1.0",
"style-loader": "^0.23.1",
"ts-loader": "^5.3.3",
"typescript-tslint-plugin": "^0.3.1",
"webpack": "^4.29.6",
"webpack-cli": "^3.3.0",
"webpack-dev-server": "^3.2.1"
์์กด
"@babel/polyfill": "^7.4.0",
"@loadable/component": "^5.7.0",
"@types/loadable__component": "^5.6.0",
"@types/react": "^16.8.10",
"@types/react-dom": "^16.8.3",
"@types/react-router-dom": "^4.3.1",
"@types/styled-components": "4.1.5",
"axios": "^0.18.0",
"react": "^16.8.6",
"react-dom": "^16.8.6",
"react-router": "^5.0.0",
"react-router-dom": "^5.0.0",
"styled-components": "^4.2.0",
"styled-normalize": "^8.0.6",
"typescript": "^3.4.1"
๋ด ๋ฌธ์ ๋ webpack ๋ฐ webpack-dev-server๊ฐ @types/styled-components๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ ์ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค. styled-component๋ง ์ฌ์ฉํ๋ฉด ๋ฌธ์ ๊ฐ ์์๊ธฐ ๋๋ฌธ์ ๋๋ค. @types/ styled-components @
@voliva ๋ฌธ์ ๋ฅผ ๋ณด๊ธฐ ์ ์ cpu ๋ฆฌ์์ค๋ฅผ 100% ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ webpack์ ๋ฌดํ ๋ฃจํ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ์ต๋๋ค.
@types/styled-components ๋ฒ์ ์ 4.1.5๋ก ๋ณ๊ฒฝํ ํ ๋ชจ๋ ๊ฒ์ด ์ ์์ธ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค.
@eps1lon : ์๋์, typescript 3.3์ ๊ด์ฐฎ์ต๋๋ค. ํนํ, ๋ฌธ์ ๊ฐ ๋ฆด๋ฆฌ์ค 3.4.0-dev.20190226 ์์ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค.
@voliva ์ seed repo๋ฅผ ์ฌ์ฉํ์ฌ @types/styled-components ๋ฆด๋ฆฌ์ค 4.1.1์ ์ถ๊ฐ๋ OmitU
์ ์ฌ๊ท ์ฌ์ฉ์ ๋ํ ๋ฌธ์ ๋ฅผ ์ ํํ ์ง์ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ ์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
type OmitU<T, K extends keyof T> = T extends any ? PickU<T, Exclude<keyof T, K>> : never;
๋ค์์ OmitU
๊ฐ index.d.ts
์์ ์ฌ์ฉ๋๋ ๋ ๊ณณ์
๋๋ค.
type WithOptionalTheme<P extends { theme?: T }, T> = OmitU<P, "theme"> & {
theme?: T;
};
WithOptionalTheme
์ฌ์ฉ๋ฒ ( StyledComponentProps
์ ์์์)
WithOptionalTheme<
OmitU<
ReactDefaultizedProps<
C,
React.ComponentPropsWithRef<C>
> & O,
A
> & Partial<PickU<React.ComponentPropsWithRef<C> & O, A>>,
T
>
๋ค๋ฅธ OmitU
์ ๋ํ ํตํฉ ๋ฐฐํฌ OmitU
๋งคํ์ ๋ํ ๋ฌด์ธ๊ฐ๊ฐ ์ปดํ์ผ๋ฌ๋ฅผ ํธ๋ฆฝํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๋ฌํ ์ธ์คํด์ค ์ค ํ๋ ๋๋ ๋ ๋ชจ๋๊ฐ ๊ณต์ฉ์ฒด๋ฅผ ํตํด ๋ฐฐํฌ๋์ง ์๋ ์ผ๋ฐ Omit
๋ก ๋์ฒด๋๋ฉด ์ปดํ์ผ ์๊ฐ์ด typescript 3.4.1์์ ํฉ๋ฆฌ์ ์ธ 10์ด ์ ๋๋ก ๋จ์ถ๋ฉ๋๋ค.
( ReactDefaultizedProps
์ ํ ์ PickU
๋ ์ฐธ์กฐํ๋ฏ๋ก ์๋ ํ์ ๋ ๋ฒ์งธ ํ์์ ํนํ ๊ธด ์คํ ์๊ฐ์ ์ค๋ช
ํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.)
์ด๋ฅผ ํ
์คํธํ๊ธฐ ์ํด ๋ฐฐํฌ๋ OmitU
์ค ํ๋ ๋๋ ๋ ๋ค๋ฅผ ๋ค์ ์ค ํ๋๋ก ๊ต์ฒดํ์ต๋๋ค.
type OmitPickU<T, K extends keyof T> = PickU<T, Exclude<keyof T, K>>;
type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
๋ค์์ typescript 3.4.1 , 3.4.0-dev.2019 0226 ๋ฐ ์ง์ ๋ฆด๋ฆฌ์ค์ธ 3.4.0-dev.2019 0223 ์ ๋ํด ์คํ๋ time yarn tsc
.
| WithOptionalTheme
์ ์ | WithOptionalTheme
์ฌ์ฉ๋ | ํ์ดํ์คํฌ๋ฆฝํธ 3.4.1 | ํ์ดํ์คํฌ๋ฆฝํธ 3.4.0-dev.20190226 | ํ์ดํ์คํฌ๋ฆฝํธ 3.4.0-dev.20190223 |
| --- | --- | --- | --- | --- |
| OmitU
| OmitU
| 1m28.984์ด | 0m55.853s | 0m6.031s |
| OmitU
| OmitPickU
| 2m49.492์ด | 1m49.457์ด | 0m5.961์ด |
| OmitPickU
| OmitU
| 1m10.313์ด | 0m35.278s | 0m6.125์ด |
| OmitPickU
| OmitPickU
| 0m10.501์ด | 0m6.947s | 0m6.055s |
| OmitU
| Omit
| 0m9.611s | 0m6.781s | 0m6.102s |
| Omit
| OmitU
| 0m10.471์ด | 0m7.451s | ...๋ฑ |
| OmitPickU
| Omit
| 0m9.654์ด | 0m6.796s | |
| Omit
| OmitPickU
| 0m8.990์ด | 0m6.485์ด | |
| Omit
| Omit
| 0m9.730์ด | 0m6.815s | |
typescript 3.3.3 ๋ฐ 3.3.4000์ ์คํ ์๊ฐ์ 3.4.0-dev.20190223๊ณผ ์ผ์นํ๋ฉฐ ์ ์ฒด์ ์ผ๋ก ๋๋ต 6์ด์ ๋๋ค.
์๋ฃจ์ ์ ์ ์ํ ๋งํผ ์คํ์ผ์ด ์ง์ ๋ ๊ตฌ์ฑ ์์์ ์ต์ํ์ง ์์ง๋ง ์ด ๋ฐ์ดํฐ๊ฐ ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค!
๋์ผํ ๋ฌธ์ ๊ฐ ์์์ ํ์ธํ ์ ์์ต๋๋ค. @types/styled-components๋ฅผ 4.1.5๋ก ๋ค์ด๊ทธ๋ ์ด๋ํ๋ ๊ฒ๋ ์ ์๊ฒ ํจ๊ณผ์ ์ด์์ต๋๋ค. ์ ๋ ํ์ดํ์คํฌ๋ฆฝํธ 3.4.1์ ์ฌ์ฉ ์ค์ ๋๋ค.
@michsa ๋๋ ์ฝ๊ฐ์ ๊ฐ์๋ฅผ ๊ธฐ๋ํ์ง๋ง 10x๋ ์๋๋๋ค. ์ด๊ฒ์ด typescript 3.4์์ ๋์ ๋์์ผ๋ฏ๋ก typescript repo์์๋ ๋ฌธ์ ๋ฅผ ์ด โโ์ ์์ต๋๊น? typescript์์ ์์ ํด์ผ ํ๋ ํ๊ท์ธ ๊ฒฝ์ฐ ๋ฒ๊ทธ ์์ ์ ๋๋๋ฆฌ์ง ์๋๋ก ํ๊ณ ์ถ์ต๋๋ค.
์ฃ์กํฉ๋๋ค. ์ฒ์์๋ typescript์ github์์ ๊ฒ์ํ์ง ์์์ต๋๋ค. ํ์ฌ ์กฐ์ฌ ์ค์ธ ์ด ๋ฌธ์ ๋ฅผ ์ฐพ์์ต๋๋ค. https://github.com/Microsoft/TypeScript/issues/30663
@weswigham @RyanCavanaugh 3.4์์ ์ฑ๋ฅ ๋ฌธ์ ๊ฐ ์๋ ์คํ์ผ์ด ์ง์ ๋ ๊ตฌ์ฑ ์์ ์ ํ์ผ๋ก ๋๋๋ฆฌ๊ธฐ๋ฅผ ์ ์ํ๊ฒ ๊ฒ์ํ๋ ๋ฐฉ๋ฒ์ ์กฐ์ฌํด ์ฃผ ์๊ฒ ์ต๋๊น ?
VS Code 1.33 ๋ฆด๋ฆฌ์ค์์๋ ๋ง์ js ์ฌ์ฉ์๊ฐ ์๋ โโ์ ํ ํ๋์ ํตํด ๋ฒ๊ทธ๊ฐ ์๋ ์ ํ์ ๋ค์ด๋ก๋ํ๊ฒ ๋ ๊ฒ์
๋๋ค. ์ด๋ฐ ์ผ์ด ๋ฐ์ํ๋ฉด ๋์ ์ํ์์ ๋ฒ์ด๋๋ ค๋ฉด ์๋ ์ ํ ํ๋ ์บ์๋ฅผ ์ง์ฐ๊ฑฐ๋ ๊ณ ์ @types/styled-components
์ค์นํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ ๋ค js ์ฌ์ฉ์์๊ฒ ์ข์ ๊ฒฝํ์ด ์๋๋๋ค. ์ฑ๋ฅ์ด ์ข์ง ์์ ํ์ดํ์ด ์ต์ ๊ฒ์๋ ๋ฒ์ ์ผ์๋ก ๋ ๋ง์ ์ฌ์ฉ์๊ฐ ์ํฅ์ ๋ฐ๊ฒ ๋ฉ๋๋ค(์ด๋ ์ฌ์ฉ์์๊ฒ ์ข์ง ์์ ๊ฒฝํ์ด๊ณ ์ฐ๋ฆฌ์๊ฒ๋ ๋ง์ ์ถ๊ฐ ์์
์ด ํ์ํจ)
์ด๊ฒ์ ์ฌ์ ํ โโ@types/styled-components 4.1.19 ๋ฐ TS 3.6.3์ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค. 2018 i7 macbook pro 15์์ TS ์๋ฃ ๋ฐ ์ค๋ฅ ๊ฐ์กฐ ํ์๊ฐ 5-10์ด ์ด์ ์์๋ฉ๋๋ค. ์ถ๊ฐ ์กฐ์ฌ๊ฐ ํ์ํฉ๋๋ค.
์, OP๋ 90๋ ๋ ์ปดํ์ผ(์ด์ ์คํ์ผ ๊ตฌ์ฑ ์์ ๋ฒ์ ์์ ์๊ฐ์ด 9๋ฐฐ ์ฆ๊ฐ)์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค. TS์ ์ดํ ๋ฒ์ ์๋ ์ํ ๊ธฐ๋ฅ์ด ์๊ณ ์คํ์ผ์ด ์ง์ ๋ ๊ตฌ์ฑ ์์์ ์ดํ ๋ฒ์ ์ ์ฑ๋ฅ์ด ๊ทธ๋ค์ง ์ข์ง ์๋๋ก ๋จ์ํ๋์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ฌธ์ , 5-10s๋ ์๋ง๋ ๊ทํ์ ํ๋ก์ ํธ์ deps๊ฐ ์ ์์ ์ผ๋ก ์๋ํ๋ ๊ฒ์ผ ์ ์์ต๋๋ค.
๋ด๊ฐํ์ง ํฌ๋ง! ๊ณผ๊ฑฐ๊ฐ ์๋์์ ๋ ์ง๊ธ์ ๋ต๋ตํ ์ ๋๋ก ๋๋ฆฝ๋๋ค. ๋ ์์ธํ ์ดํด๋ณด๊ณ ์ด ๋ฌธ์ ์ ๊ด๋ จ๋ ๊ฒ์ผ๋ก ๋ณด์ด๋ฉด ์ฌ๊ธฐ์ ๋ค์ ๋ณด๊ณ ํ๊ฒ ์ต๋๋ค.
@types/styled-components๋ฅผ ์ถ๊ฐํ์๋ง์ ๋ด VSCde๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค(t ์ค๋ฅ๋ ์ฆ์๊ฐ ์๋๋ผ ๋ช ์ด ํ์ ๋ํ๋๊ณ ์ฌ๋ผ์ง๋๋ค).
์ ๋ TS 3.6.4 ๋ฐ ์ ํ 4.1.20์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
@sregg ๋ @types/styled-components
์์ ์ํ๋ฅผ ๋๋๋ฆฐ ์ด PR์ ๋น๋ํฉ๋๋ค. https://github.com/DefinitelyTyped/DefinitelyTyped/pull/39323
(๊ทธ๋ฆฌ๊ณ ๋ก์ปฌ์์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด v 4.1.19
๋ก ๋กค๋ฐฑ)
@sregg go
@types/styled-components
์ํ๋ฅผ ๋๋๋ฆฐ ์ด PR์ ๋น๋ํฉ๋๋ค. #39323
@typescript-bot์ ์ฑ๋ฅ ๋ฉํธ๋ฆญ์ ์์งํ์ฌ "[PR]์ด ์ปดํ์ผ ์๊ฐ์ด๋ ํธ์ง๊ธฐ ์๋ต์ฑ์ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น ์ ์๋์ง ์ฌ๋ถ๋ฅผ ์ธก์ "ํฉ๋๋ค. PR 39323์์ @typescript-bot์ "๋ณ๋ก ๋ณํ ๊ฒ์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค." ๋ผ๊ณ ๊ฒฐ๋ก ์ง์์ต๋๋ค
@sregg , @typescript-bot์ ๊ธฐ์กด ๋ฉํธ๋ฆญ์ด ๊ด์ฐฐํ ํธ์ง๊ธฐ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ๊ฐ์กฐ ํ์ํ์ง ๋ชปํ๋ ์ด์ ๋ฅผ ์๊ฐํ ์ ์์ต๋๊น?
(์ฌ์ด๋๋ฐ: "์ด PR์ ๋น๋ํ์ธ์." ๋ ๊ฑด์ค์ ์ธ ์ ์์ด ์๋๋๋ค, @weswigham. ๊ฑด์ค์ ์ด์ด์ผ ํฉ๋๋ค.)
๋ค์์ ๋ช ๊ฐ์ง ์ถ๊ฐ ์ปจํ ์คํธ์ ๋๋ค.
@sregg ๋ TypeScript 3.6.4๋ฅผ ์ฌ์ฉํ๋ ๋์ ์ฑ๋ฅ ์ ํ๋ฅผ ๋ณด๊ณ ํ์ต๋๋ค: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/34391#issuecomment -548701239
๊ทธ๋ฌ๋ https://github.com/microsoft/TypeScript/issues/30663#issuecomment -507406245์ ์๋ @weswigham์ ๋ต๋ณ์์ ์ ๋ TypeScript ๋ฒ์ โฅ3.5๊ฐ ๋ ์ด์ https://github.com/DefinitelyTyped์ ๊ฐ์ ์ฑ๋ฅ ์ ํ๋ฅผ ์ด๋ํ์ง ์๋๋ค๋ ๊ฒ์ ์ดํดํ์ต๋๋ค. ๋ฐฉ์งํ๊ธฐ ์ํด
๊ทธ๋์ ๊ทธ ์ดํด๋ฅผ ๋ฐํ์ผ๋ก https://github.com/DefinitelyTyped/DefinitelyTyped/pull/39323 ์ ํตํด https://github.com/DefinitelyTyped/DefinitelyTyped/pull/34499 ๋ฅผ ๋๋๋ฆฌ๊ธฐ๋ก ํ์ต๋๋ค
๋ด์ ์ฑ๋ฅ ๋ฉํธ๋ฆญ์ ํ ์คํธ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ ๋ถํํ๋ ์คํ์ผ์ด ์ง์ ๋ ๊ตฌ์ฑ ์์ ํ ์คํธ๋ ํฌ๊ธฐ์ (๋ณต์กํ) ์ฌ์ฉ๋ ๋ฉด์์ ์ค์ ์ฑ๊ณผ ์๋นํ ๋ค๋ฆ ๋๋ค. ๊ฐ์ง๊ณ ์๋ ๊ฒ์ผ๋ก ์ต์ ์ ๋คํ๊ณ ์์ง๋ง ํญ์ _๋ชจ๋ _ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์ฐพ์ง๋ ์์ต๋๋ค.
(์ฌ์ด๋๋ฐ: "git" ์๋ฏธ์ "blame" - ๊ธฐ๋ถ์ ์ํ๊ฒ ํ์ง ๋ง์ธ์~)
๊ทธ๊ฒ์ ์๋ฏธ๊ฐ ์์ต๋๋ค, ๊ฐ์ฌํฉ๋๋ค @weswigham!
ํ ์คํธ์์ ์ด ์ฑ๋ฅ ํ๊ท๋ฅผ ํฌ์ฐฉํ ์ ์์ ๋๊น์ง ์ต์ ์ ์กฐ์น๋ PR https://github.com/DefinitelyTyped/DefinitelyTyped/pull/39323 ์ ๋๋๋ฆฌ๋ ๊ฒ์ด๋ฏ๋ก PR https://github.com์ ์ด์์ต๋๋ค.
๋ค์ ์ฃผ์๋ ๊ณต์ ๋ ๋ณด๊ณ ์(์: https://github.com/DefinitelyTyped/DefinitelyTyped/pull/39323#issuecomment-549015652)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ์คํธ๋ฅผ ์ถ๊ฐํ ์์ ์ ๋๋ค. ์๋ํ๋ฉด https://github.com/DefinitelyTyped/DefinitelyTyped/pull/39323 ๊ณผ ์ ์ฌํ ๋ค๋ฅธ ์๋ฃจ์ ์ ์ฌ์ ์ ํ๊ฐํ ์
@smockle ์ต์ ๋ฒ์ (4.4.2)์ ์คํํด
UPD: sc ํ์ดํ v5.0.1๊ณผ ๋์ผ
@sregg
์ ๋ ์!!!
๋ด VSCode(*์ค์ ๋ก TS-SERVER)๊ฐ ์ด์ ๋ณด๋ค ๋๋ฆฝ๋๋ค. styled-components๋ฅผ ์ฌ์ฉํ ํ.
"@types/styled-components": "^5.1.0",
"styled-components": "^5.1.1"
"typescript": "^3.9.5"
TS๋ฅผ 3.9.X์์ 3.8.3์ผ๋ก ๋ค์ด๊ทธ๋ ์ด๋ํ ํ ์ฑ๋ฅ์ด ๋ค์ ์ ์์ผ๋ก ๋์๊ฐ์ต๋๋ค. "@types/styled-components": "^5.1.0"
๋ฐ "styled-components": "^5.1.1"
.
@joaopaulobdac ์๊ฒ ๊ฐ์ฌ
๊ทธ๋ผ ์๋ก์ด ์ด์๋ฅผ ๋ง๋ค์ด ๋ณผ๊น์? ์ ๊ทธ๋ ์ด๋ํ์ง ์๋ ๊ฒ์ ๋จ๊ธฐ์ ์ธ ํด๊ฒฐ์ฑ ์ผ ๋ฟ์ ๋๋ค.
์ต์ 2020๋ 6์(๋ฒ์ 1.47) ๋ฐ "@types/styled-components": "^5.1.1"์์ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
3.9.3
styled-components ์ ํ ๋ฒ์ 5.1.1
๊ณผ ํจ๊ป typescript 3.9.3
์ฌ์ฉํ๋ฉด VSCode TS ์๋ฒ ์ฑ๋ฅ์ด ์์ ํ ์ ํ๋ฉ๋๋ค. ์ ๋์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. D typescript 3.8.3
๋ค์ด๊ทธ๋ ์ด๋ํ๋ฉด ์ฑ๋ฅ์ด ์ ์ด๋ ์ผ๋ถ ๋ณต์๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง ์ค์ ๋ก๋ ์ข ๋ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ฌ์ผ ํฉ๋๋ค.
@RyanCavanaugh ์ฌ
๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
๋ค์ ์ด ๊ฐ์น๊ฐ์๋ ์ฌ๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค!
๋ด VSCode๊ฐ ์ง์ํ๊ธฐ ์์ํ์์ ํ์ธํฉ๋๋ค.
๋๋ ๊ฒฐ๊ตญ styled-components๋ฅผ ์ ๊ฑฐํ์ง๋ง, ์ด์จ๋ react-native์ ๋ง์ ์ด์ ์ ์ ๊ณตํ์ง ๋ชปํ์ต๋๋ค. ์คํ๋ ๋ ์ฐ์ฐ์์ ์ธ๋ผ์ธ ์คํ์ผ์ด ์๋ ํ๋ฒํ ์ค๋๋ JS ๊ฐ์ฒด๋ TS ์ฑ๋ฅ ๋ฌธ์ ์์ด ํ๋ฅญํ๊ฒ ์๋ํฉ๋๋ค. ๊ฒฐ๊ตญ IMO๋ ์ ์ด๋ RN์์ ์คํ์ผ์ด ์ง์ ๋ ๊ตฌ์ฑ ์์๋ณด๋ค ์ฝ๋๋ฅผ ์ฝ๊ธฐ๊ฐ ๋ ์ฝ์ต๋๋ค.
VSCode๋ก ์ฝ๋ฉํ ๋ CSS-in-JS ์ฒ๊ตญ์์ ์ง์ฅ์ ๊ฒฝํํ๊ณ ์์ต๋๋ค.
@AndrewMorsillo @hilezir ์ ๋ TS 4๋ฅผ ์ฌ์ฉํ์ฌ styled-components์์ styletron์ผ๋ก ์ ํํ์ต๋๋ค. styletron์ ์ฑ๋ฅ์ vscode์ ๋ธ๋ผ์ฐ์ ๋ชจ๋์์ ํจ์ฌ ๋ ์ข์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๋ React Native์ styletron์ ๋ํด ๋ชจ๋ฆ ๋๋ค.
@AndrewMorsillo @hilezir ์ ๋ TS 4๋ฅผ ์ฌ์ฉํ์ฌ styled-components์์ styletron์ผ๋ก ์ ํํ์ต๋๋ค. styletron์ ์ฑ๋ฅ์ vscode์ ๋ธ๋ผ์ฐ์ ๋ชจ๋์์ ํจ์ฌ ๋ ์ข์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๋ React Native์ styletron์ ๋ํด ๋ชจ๋ฆ ๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ด ๋ณ๊ฒฝ์ ํ๊ธฐ์๋ ๋๋ฌด ๋ฆ์์ง๋ง styletron์ ๋ํด ๋ค์ด๋ณธ ์ ์ด ์์ผ๋ฉฐ ์คํ์ผ์ด ์ง์ ๋ ๊ตฌ์ฑ ์์๋ณด๋ค ๋ชจ์์ด ๋ ๋ง์์ ๋ญ๋๋ค.
์๋ก์ด ๋ฌธ์ ๊ฐ ์์ต๋๊น, ์๋๋ฉด ์ด ๋ฌธ์ ๊ฐ ๋ค์ ์ด๋ฆด ๊ฒ์ ๋๊น? @types/styled-components 5.1.2 ๋ฐ TS 3.9.7์๋ ์ฌ์ ํ ํฐ ์ฑ๋ฅ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
VSCode ์๋๋ฅผ ๋์ด๋ ๋ฐฉ๋ฒ์ ์์๋ด๋ ค๊ณ ํ๋ฃจ ์ข
์ผ ๋ณด๋๊ณ _๋ง์นจ๋ด_ @types/styled-components
์์๋์ต๋๋ค. ์ด๊ฒ์ด ์ค์น๋๋ฉด ํธ์ง๊ธฐ์ ์๋ฌด ๊ฒ๋ ์
๋ ฅํ์ง ์์ผ๋ฉด tsserver.js
(VSCode Process Explorer๋ฅผ ํตํด ํ์๋จ)์ด >100% CPU ์คํ์ดํฌ๊ฐ ๋ฐ์ํ๊ณ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ฌดํ๋๋ก ์ปค์ง๋๋ค. @types/styled-components
์ ๊ฑฐํ๊ธฐ
TypeScript 4.0.3๊ณผ @types/styled-components
5.1.3์ ์ฌ์ฉํ๊ณ ์์์ต๋๋ค.
๋๊ตฐ๊ฐ ์คํ์ผ ๊ตฌ์ฑ ์์์ ๋ํ ๋ ๋์ ๋์์ ์ ์ํ ์ ์์ต๋๊น? ๋ด vscode๊ฐ ์์ ํ ๋ฉ์ถฅ๋๋ค.
๋๊ตฐ๊ฐ ์คํ์ผ ๊ตฌ์ฑ ์์์ ๋ํ ๋ ๋์ ๋์์ ์ ์ํ ์ ์์ต๋๊น? ๋ด vscode๊ฐ ์์ ํ ๋ฉ์ถฅ๋๋ค.
์ด ์๋?
https://emotion.sh/docs/styled#styling - ์์ ๋ฐ ๊ตฌ์ฑ ์์
์ค์ ๋ก styled-components
์ ํ์ ์ฑ๋ฅ์ ๊ฐ์ ํ๊ธฐ ์ํด ์ด๋ฆฐ ํ ์์ฒญ์ด ์์ต๋๋ค: https://github.com/DefinitelyTyped/DefinitelyTyped/pull/46510.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@RyanCavanaugh ์ฌ