Definitelytyped: [@types/react-redux] 'hoist-non-react-statics'์—๋Š” ๋‚ด๋ณด๋‚ธ ๋ฉค๋ฒ„ 'NonReactStatics'๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2019๋…„ 03์›” 07์ผ  ยท  84์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: DefinitelyTyped/DefinitelyTyped

  • [x] @types/react-redux ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์•˜๋Š”๋ฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
  • [x] ์•ˆ์ •์ ์ธ ์ตœ์‹  ๋ฒ„์ „์˜ tsc๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. https://www.npmjs.com/package/typescript
  • [x] StackOverflow ์— ์ ํ•ฉํ•˜์ง€ ์•Š์€ ์งˆ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. (์ ์ ˆํ•œ ์งˆ๋ฌธ์ด ์žˆ์œผ๋ฉด ๊ฑฐ๊ธฐ์—์„œ ์งˆ๋ฌธํ•˜์‹ญ์‹œ์˜ค.)
  • [x] [๋ฉ˜์…˜](https://github.com/blog/821-mention-somebody-they-re-notified) ์ž‘์„ฑ์ž( Definitions by: in index.d.ts ) ๋Œ€๋‹ตํ•˜๋‹ค.

@jamesreggio @JounQin

@types/react-redux 7.0.1 ์—์„œ @types/react-redux 7.0.2 ํ•˜๋ฉด ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

'/node_modules/hoist-non-react-statics' has no exported member 'NonReactStatics'.

47 import { NonReactStatics } from 'hoist-non-react-statics';

์—ฌ๊ธฐ์— ์†Œ๊ฐœ ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค : https://github.com/DefinitelyTyped/DefinitelyTyped/commit/8b1beff944f6c7bf913b6fcee31fb5f7129064a7

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‚ด๊ฐ€ ํ‹€๋ฆด ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๋ฌธ์ œ๊ฐ€ ๋” ๊ฐ„๋‹จ ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

import { NonReactStatics } from 'hoist-non-react-statics';

ํ•ด์•ผํ•œ๋‹ค

import NonReactStatics from 'hoist-non-react-statics';

@types/react-redux 7.0.1๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์€ ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋  ๋•Œ๊นŒ์ง€ ๋น ๋ฅธ ์ˆ˜์ •์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  84 ๋Œ“๊ธ€

๊ทธ๋ ‡๊ตฐ์š”. ๊ทธ ๋ณ€๊ฒฝ์—์„œ @types/hoist-non-react-statics ์— ๋Œ€ํ•œ ์ข…์†์„ฑ์„ ๋„์ž…ํ–ˆ์ง€๋งŒ ์ข…์†์„ฑ์œผ๋กœ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ์œ ํ˜•์ด ์œ ํ˜•์—๋งŒ ์˜์กดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ข…์†์„ฑ์œผ๋กœ ์„ ์–ธํ•  ์œ„์น˜๊ฐ€ ํ™•์‹คํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@JounQin , ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ///<reference ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ package.json ์— ๋ฌด์–ธ๊ฐ€๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

์ž„์‹œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ํ”„๋กœ์ ํŠธ์— npm install --dev @types/hoist-non-react-statics ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ํ‹€๋ฆด ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๋ฌธ์ œ๊ฐ€ ๋” ๊ฐ„๋‹จ ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

import { NonReactStatics } from 'hoist-non-react-statics';

ํ•ด์•ผํ•œ๋‹ค

import NonReactStatics from 'hoist-non-react-statics';

@types/react-redux 7.0.1๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์€ ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋  ๋•Œ๊นŒ์ง€ ๋น ๋ฅธ ์ˆ˜์ •์ž…๋‹ˆ๋‹ค.

์ €๋„ ์˜ค๋Š˜ ์ด ๋ฌธ์ œ๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. 7.0.1๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ตฐ์š”. ๊ทธ ๋ณ€๊ฒฝ์—์„œ @types/hoist-non-react-statics ์— ๋Œ€ํ•œ ์ข…์†์„ฑ์„ ๋„์ž…ํ–ˆ์ง€๋งŒ ์ข…์†์„ฑ์œผ๋กœ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

ํ™•์‹คํžˆTyped๋Š” @types/hoist-non-react-statics ๋ฅผ @types/react-redux ๋Œ€ํ•œ ์ข…์†์„ฑ์œผ๋กœ ์ž๋™ ์ถ”๊ฐ€ํ–ˆ์ง€๋งŒ (๋ถ„๋ช…ํžˆ) ํƒ€์ดํ•‘์ด ์ž‘๋™ํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์ž„์‹œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ํ”„๋กœ์ ํŠธ์— npm install --dev @types/hoist-non-react-statics ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋‹ˆ์š”, ์ด ์ข…์†์„ฑ์€ ์ด๋ฏธ ConfirmedlyTyped์— ์˜ํ•ด ์ž๋™์œผ๋กœ ์ถ”๊ฐ€๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ž‘๋™ํ•˜์ง€ ์•Š์ง€๋งŒ TS๊ฐ€ ์ž…๋ ฅ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ TS์ด์˜ ์กด์žฌ๋ฅผ ์ธ์‹ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹คํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ์ƒ๊ฐ hoist-non-react-statics ๋กœ, ๋ชจ๋“ˆ hoist-react-statics ์ž์ฒด๋ฅผ ํŒจํ‚ค์ง€๋Š” ๋ถ€๋„๋Ÿฌ์šด (node_modules์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ทธ TS ์ˆ˜์—์„œํ•˜์ง€ ํŒŒ์ƒ ๋ชจ๋“ˆ existince @types/hoist-non-react-statics ํŒจํ‚ค์ง€(ํ˜ธํ™˜์„ฑ๊ณผ ๊ฐ™์€ ๋™์ž‘์— ๋Œ€ํ•œ ํƒ€๋‹นํ•œ ์ด์œ ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Œ). ์ด ๊ฐ€์„ค์€ hoist-non-react-statics ๋ฅผ ๋ฉ๋‹ˆ๋‹ค .

๋”ฐ๋ผ์„œ @jamesreggio ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•˜๋ ค๋ฉด package.json of @types/react-redux ์— ๋Œ€ํ•œ ์ข…์†์„ฑ hoist-non-react-statics ํŒจํ‚ค์ง€๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@surgeboris ๊ฐ€ 7.0.3์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜๊ณ  [email protected] ๋ฐ @types/[email protected] , ๋ฌธ์ œ ์ˆ˜์ •

๋‚˜๋ฅผ ์œ„ํ•ด ์‹ค์ œ๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ์ˆ˜์ •. ๋‚ด๊ฐ€ ๋ญ”๊ฐ€ ์ž˜๋ชปํ•˜๊ณ  ์žˆ๋Š”์ง€๋„ ๋ชจ๋ฅธ๋‹ค. ์‹ค ์‚ฌ์šฉ 1.13

๋„ค, ๊ธฐ๋‹ค๋ ค ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์ • ์‚ฌํ•ญ์„ ์•Œ์•„๋‚ด๊ณ  PR: #33919๋ฅผ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค.

๋ถ„๋ช…ํžˆ ๋…ธ๋“œ ์Šคํƒ€์ผ ์œ ํ˜• ์ •์˜ ๋‚ด๋ณด๋‚ด๊ธฐ( export = )๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๊ฐ€์ ธ์˜ค๋Š” ์ ์ ˆํ•œ ๋ฐฉ๋ฒ•์€ import [name] = require([package name]) ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๋Ÿฌํ•œ ๊ฐ€์ ธ์˜ค๊ธฐ/๋‚ด๋ณด๋‚ด๊ธฐ ํŒจํ„ด์˜ ๋‰˜์•™์Šค๊ฐ€ ๋‹ค์†Œ ๋‚ฏ์„ค๊ณ , ์ด์ œ์•ผ ์ดํ•ดํ•œ๋‹ค๋Š” ๊ฒƒ์ด ์–ด๋ ดํ’‹์ด ํ™•์‹ ์ด ๋“ค ๋ฟ์ž…๋‹ˆ๋‹ค ๐Ÿ˜†

DefinitielyTyped์˜ ์œ ์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ์ด๋ฅผ ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ๋ณ‘ํ•ฉํ•˜๊ณ  ๋ฆด๋ฆฌ์Šคํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ํ‡ด๋ณดํ•ด์„œ ๋‹ค์‹œ ํ•œ ๋ฒˆ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

๋ถˆํ–‰ํžˆ๋„ ์ตœ๊ทผ์— ์ถœ์‹œ๋œ 7.0.4 ์—๋„ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

@types/hoist-non-react-statics ์— ๋Œ€ํ•œ ๋ช…์‹œ์  ์ข…์†์„ฑ์ด ์—ฌ์ „ํžˆ ๋ˆ„๋ฝ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ, ์•„๋‹ˆ์š” - ์ƒˆ๋กœ์šด npm i @types/react-redux ๊ฐ€ @types/hoist-non-react-statics . ๋‚˜๋Š” ์•„๋ฌด ๋ฌธ์ œ๊ฐ€ ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค?

์˜ˆ, ์ข…์†์„ฑ์€ package.json ํ™•์‹คํžˆ ๋‚˜์—ด๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

  "dependencies": {
    "@types/hoist-non-react-statics": "*",
    "@types/react": "*",
    "redux": "^4.0.0"
  },

์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๋ชจ๋“  ํ•ญ๋ชฉ์˜ ์˜ฌ๋ฐ”๋ฅธ ๋ฒ„์ „์ด ์„ค์น˜๋˜์—ˆ๋Š”์ง€ ๋‹ค์‹œ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

(๊ตฌ์ฒด์ ์œผ๋กœ ์ข…์†์„ฑ์€ * ๋กœ ๋‚˜์—ด๋˜๋ฏ€๋กœ npm ๊ฐ€ ์ข…์†์„ฑ์„ ๋งŒ์กฑ์‹œํ‚ค๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜๋Š” ์œ ํ˜•์ด ๋ˆ„๋ฝ๋œ ์ด์ „ ๋ฒ„์ „์˜ @types/hoist-non-react-statics ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

๋”ฐ๋ผ์„œ ๋ฌธ์ œ๋Š” ๋‹ค์†Œ ๋ฏธ๋ฌ˜ํ•œ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

hoist-non-react-statics ํŒจํ‚ค์ง€์—์„œ ์ž์‹ ์˜ ํ•˜์ดํผ ๊ธฐ๋ณธ typings์„ ํฌํ•จ v2.2.0 ๊นŒ์ง€ v3.0.0 , ๊ทธ๋ฆฌ๊ณ  ๋งŒ์•ฝ์˜ ๋ฒ„์ „ hoist-non-react-statics ๊ทธ ์ ์—์„œ์˜ ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ์— ํ•ด๊ฒฐ๋˜๋Š” ๋ฒ”์œ„์—์„œ ํŒจํ‚ค์ง€ ๋กœ์ปฌ ์ž…๋ ฅ์ด @types/hoist-non-react-statics ๋ณด๋‹ค ์šฐ์„ ํ•˜๋ฏ€๋กœ ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋‘ ๊ฐ€์ง€ ์ฆ‰๊ฐ์ ์ธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  1. hoist-non-react-statics@^3.3.0 ๋ฅผ ํ”„๋กœ์ ํŠธ์— ์ข…์†์„ฑ์œผ๋กœ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  2. ์›์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ package.json ํ•ด์ƒ๋„ ์žฌ์ •์˜๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
    "resolutions": { "hoist-non-react-statics": "^3.3.0" }

๋Œ€๋ถ€๋ถ„์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฒ˜์Œ๋ถ€ํ„ฐ hoist-non-react-statics ์˜ ์กด์žฌ๋ฅผ (์ •ํ™•ํ•˜๊ฒŒ) ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋“ค ์ค‘ ์–ด๋Š ๊ฒƒ๋„ ์ตœ์ ์ด ์•„๋‹™๋‹ˆ๋‹ค.

๋‚œ ์ •๋ง ํ™•์‹ค ์ตœ์ ์˜ ๋ฐฉ๋ฒ•์€ ์—ฌ๊ธฐ์— ์–ด๋–ป๊ฒŒ ๋ ์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ, ์šฐ๋ฆฌ๊ฐ€ versionspec ํŠน์ • ๋ชฉ๋ก ์ˆ˜ ์žˆ๋‹ค๋ฉด ์˜์‹ฌ @types/hoist-non-react-statics ๋‚ด๋ถ€์˜ package.json ์— @types/react-redux , ์šฐ๋ฆฌ ์˜ํ–ฅ์„ ์™„ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@weswigham - ๊ทธ๊ฒƒ์˜ ๊ฐ€๋Šฅํ•œ์ด์™€ ํ•จ๊ป˜ ์ž๋™ ์ƒ์„ฑ ์ข…์†์„ฑ์„ ๋Œ€์ฒดํ•˜๋Š” ๊ฒฝ์šฐ์— ๋‹น์‹ ์ด ์•Œ๊ณ  * ์‹œ ์˜์กด์„ฑ์œผ๋กœ @types/hoist-non-react-statics ์™€ >=3.3.0 ?

@weswigham โ€” ์ž๋™ ์ƒ์„ฑ๋œ ์ข…์†์„ฑ์„ *๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ์ง€ >=3.3.0์ธ @types/hoist-non-react-

package.json ์— ๋ช…์‹œ์ ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๋ฉด ์ž‘๋™ํ• ๊นŒ์š”? AFAIK ์•”์‹œ์  ๋˜๋Š” ๊ฒฝ๋กœ ๋งคํ•‘ ๊ธฐ๋ฐ˜ ์ข…์†์„ฑ์— ๋Œ€ํ•œ ๋ฒ„์ „์„ ํ•˜๋“œ์ฝ”๋”ฉํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ ํ‹€๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@sandersn ์ด ๋” ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

๋ฐฉ๊ธˆ package.json ์— @types/hoist-non-react-statics ์˜ ํŠน์ • ๋ฒ„์ „์ด ํฌํ•จ๋œ PR์„ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค. ํฌ๋ง์ด ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ? ํ™•์‹คํžˆ ๋‹ค์น  ์ˆ˜๋Š” ์—†์—ˆ๋‹ค.

@weswigham , ๊ฒ€ํ† ํ•˜๊ณ  ์Šน์ธํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

https://github.com/DefinitelyTyped/DefinitelyTyped/pull/33979

๊ทธ๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅธ ์ˆ˜์ •์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. hoist-non-react-statics@latest ์— ๋Œ€ํ•œ ์ง์ ‘ ์ข…์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์–ด, @weswigham + @sandersn โ€” ๋ฌด์—‡์„ ํ•ด์•ผ ํ• ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. @types/hoist-non-react-statics ๋Œ€ํ•œ ํŠน์ • ๋ฒ„์ „ ์‚ฌ์–‘์„ ์ถ”๊ฐ€ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— Travis ๋นŒ๋“œ๊ฐ€ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ์—์„œ ์˜ค๋ฅ˜๋ฅผ ์ฐธ์กฐ

@types/react-redux _requires_ ์ตœ์†Œ 3.3.0 of @types/hoist-non-react-statics ๋กœ ๋ณ€๊ฒฝํ•œ ๊ฒƒ์ด ์‚ฌ์‹ค์ด๋ฏ€๋กœ ๊ทธ ์ œ์•ฝ์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? (์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋Œ€๋กœ ํ•ด์„œ dependenciesWhitelist.txt in types-publisher ํ•ด์•ผ ํ• ๊นŒ์š”? ๋„ˆ๋ฌด ํฐ ๋ง์น˜ ๊ฐ™์Šต๋‹ˆ๋‹ค.)

๋„ˆ๋ฌด ํฐ ๋ง์น˜๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ๋ฌธ์ œ๋Š” ๋กœ๊ทธ ๋ฉ”์‹œ์ง€๊ฐ€ ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฑฐ์˜ ๋™์ผํ•ฉ๋‹ˆ๋‹ค(๋‹จ, ๋ฐฐ์†ก ์œ ํ˜•์ด ์•„๋‹Œ ๊ธฐ๋ณธ ํŒจํ‚ค์ง€๋กœ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊ต์ฒด๋˜์—ˆ๋‹ค๋Š” ์ ์€ ์ œ์™ธ).

์ข‹์Šต๋‹ˆ๋‹ค. types-publisher ์— ๋ณ‘ํ•ฉํ•  PR์ด ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/Microsoft/types-publisher/pull/595

@weswigham โ€” ์ฐฉ๋ฅ™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

PDT 3:06(์ด ๋Œ“๊ธ€ 40๋ถ„ ์ „)์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ข‹์Šต๋‹ˆ๋‹ค. @types/[email protected] ํ•œ ๋ฒˆ ์‹œ๋„ํ•ด ๋ณด๊ณ  ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”.

@types/[email protected] ์—ฌ์ „ํžˆ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•œ ์œ ์ผํ•œ ์ˆ˜์ •์€ ๋‚ด ํ”„๋กœ์ ํŠธ์—์„œ ์ˆ˜๋™์œผ๋กœ hoist-non-react-statics ๋ฅผ ์š”๊ตฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ, @types/ [email protected] ์—์„œ ์—ฌ์ „ํžˆ ๊นจ

@jamesreggio @weswigham ๋Œ“๊ธ€์„ ๋ณด์•˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ํ•‘์„ ์ณ์„œ ๋ณด์…จ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋„ค, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” ์˜ค๋Š˜ ์˜คํ›„ Cisco์—์„œ React๋ฅผ ๊ฐ€๋ฅด์น˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋น ๋ฅธ ํ™•์ธ ํ›„ ์ด ์Šค๋ ˆ๋“œ๋ฅผ ์ฐพ์•˜๊ณ  ๋‹ค์‹œ 7.0.1๋กœ ๋˜๋Œ๋ ธ๊ณ  ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ œ๊ฐ€ ์กฐ๊ธˆ ์ด์ƒํ•œ ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. hoist-non-react-statics๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์œ„์—์„œ ์„ค๋ช…ํ•œ ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. hoist-non-react-statics๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ๊ณ„์† ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฑฐ๊ธฐ์—์„œ ์„ ํƒ๋˜๋Š” ์‹ค์ œ ์ข…์†์„ฑ์ด ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ํ•ด๋‹น ํŒจํ‚ค์ง€๋ฅผ ์ œ๊ฑฐํ•˜๋”๋ผ๋„ ๊ณ„์† ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค. node_modules์™€ package-lock.json์„ ์ง€์šฐ๊ณ  ํ˜ธ์ด์ŠคํŠธ ์—†์ด ๋‹ค์‹œ ์„ค์น˜ํ•˜๋ฉด ๋‹ค์‹œ ๊นจ์ง‘๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ง€๊ธˆ ์—ฌ๊ธฐ์„œ ๋‚˜๊ฐ€์•ผ ํ•˜๋ฏ€๋กœ ๋” ๊นŠ์ด ํŒŒ๊ณ ๋“ค๋ ค๊ณ  ํ•˜๋Š” ์ง€๊ธˆ ๋‹น์žฅ ์‹œ๊ฐ„์„ ํ• ์• ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ์€ ์–ด์จŒ๋“  ํŒจํ‚ค์ง€์™€ ๋” ์ž˜ ์กฐํ™”๋˜๋Š” ๊ฒƒ์ด ๋” ๋น ๋ฅด๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด์ผ ๋‹ค์‹œ ํŒŒํ—ค์ณ๋ด์•ผ๊ฒ ์ง€๋งŒ ์†”์งํžˆ ๋„์›€์ด ํ•„์š”ํ•ด
์ „๋ฌธ๊ฐ€๋กœ๋ถ€ํ„ฐ. TS ๋ชจ๋“ˆ ์‹œ์Šคํ…œ์˜ ๋ณต์žก์„ฑ์€ ๋‚˜๋ฅผ ๋‹นํ™ฉํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋Š๋‚€๋‹ค
์—ฌ๊ธฐ์—์„œ ๋ชจ๋“  ๊ฒƒ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ˆ˜ํ–‰ ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ...

๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๋ถ„๋“ค์€ ๊ท€ํ•˜์˜ ์š”์ ์„ ๋ถ™์—ฌ๋„ฃ์œผ์‹ญ์‹œ์˜ค.
package-lock.json ๋˜๋Š” yarn.lock? ๋‚˜๋Š” ์ด๊ฒƒ์ด ๊ด€๋ จ ๋ฌธ์ œ ์ผ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
hoist-non-react-statics์— ์ž์ฒด ํƒ€์ดํ•‘์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค๋Š” ํŠน์ดํ•œ ์‚ฌ์‹ค์— ๋Œ€ํ•ด
๊ณผ๊ฑฐ์˜ ์งง์€ ๊ธฐ๊ฐ„ ๋™์•ˆ.

2019๋…„ 3์›” 21์ผ ๋ชฉ์š”์ผ 20:03 Joel Mussman [email protected]์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

๋„ค, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” ์˜ค๋Š˜ ์˜คํ›„ Cisco์—์„œ React๋ฅผ ๊ฐ€๋ฅด์น˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
์ˆ˜์—…์„ ๋ฌผ์—ˆ์Šต๋‹ˆ๋‹ค. ๋น ๋ฅธ ํ™•์ธ ํ›„ ์ด ์Šค๋ ˆ๋“œ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.
7.0.1๊นŒ์ง€ ๋‚ด๋ ค๊ฐ”๊ณ  ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ œ๊ฐ€ ์กฐ๊ธˆ ์ด์ƒํ•œ ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ถ”๊ฐ€ํ•˜๋ฉด
hoist-non-react-statics ์œ„์—์„œ ์„ค๋ช…ํ•œ ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ œ๊ฑฐํ•˜๋ฉด
hoist-non-react-statics ๊ณ„์† ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ง„์งœ๊ฐ€ ์žˆ์„์ง€๋„ ๋ชฐ๋ผ
๊ฑฐ๊ธฐ์—์„œ ์„ ํƒ๋˜์ง€๋งŒ ์ œ๊ฑฐํ•˜๋”๋ผ๋„ ๊ณ„์† ๋‚จ์•„์žˆ๋Š” ์ข…์†์„ฑ
๊ทธ ํŒจํ‚ค์ง€. node_modules ๋ฐ package-lock.json์„ ์ง€์šฐ๊ณ 
ํ˜ธ์ด์ŠคํŠธ์—†์ด ๋‹ค์‹œ ์„ค์น˜ํ•˜๋ฉด ๋‹ค์‹œ ๊ณ ์žฅ๋‚ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ง€๊ธˆ ์—ฌ๊ธฐ์„œ ๋‚˜๊ฐ€์•ผ ํ•œ๋‹ค.
๊ทธ๋ž˜์„œ ๋” ๊นŠ์ด ํŒŒ๊ณ ๋“ค๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๋Š” ์ง€๊ธˆ ๋‹น์žฅ์— ๋” ์ด์ƒ ์‹œ๊ฐ„์„ ํ• ์• ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ์‚ฌ๋žŒ์€ ์–ด์จŒ๋“  ๋” ๋นจ๋ฆฌ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํŒจํ‚ค์ง€.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33690#issuecomment-475477877 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AAyLva1P2ZGe86669tG7yu7fe1yMWWf-ks5vZEgHgaJpZM4bjI1Z
.

์•ˆ๋…•ํ•˜์„ธ์š” ์ œ์ž„์Šค,

์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ˆ˜์—… ํ”„๋กœ์ ํŠธ์—์„œ ๋ฌด์—‡์ด ์ž˜๋ชป๋˜์—ˆ๋Š”์ง€ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ์•„์ง ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚ด๊ฐ€ ์•„๋Š” ๊ฒƒ์„ ๊ณต๊ฐœํ•  ๊ฒƒ์ด๋ฉฐ ์•„๋งˆ๋„ ํ™•์‹คํžˆ ์œ ํ˜•ํ™”์˜ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋‹น์‹ ์„ ๋„์šธ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

react-router๋Š” ์ด์ „ ์‹ค์Šต์—์„œ react-redux๋ณด๋‹ค ๋จผ์ € ์„ค์น˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. react-router์˜ ํ˜„์žฌ ๋ฒ„์ „(4์ผ ์ „๊นŒ์ง€)์€ 4.3.1 ์ด์—ˆ๊ณ  [email protected]์— ์ข…์†๋˜์–ด [email protected] ์ด ์„ค์น˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. [email protected]์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค [email protected] ์˜ @types/react-redux ์ข…์†์„ฑ์€ ์ตœ์ƒ์œ„ ์ˆ˜์ค€์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฐพ์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์œผ๋กœ

์•ž์—์„œ ์„ค๋ช…ํ•œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ๋ฌธ์ œ๋Š” ์ด ์‹œ๋‚˜๋ฆฌ์˜ค์™€ ๋งค์šฐ ์œ ์‚ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ด€๋ จ ์งˆ๋ฌธ: @types/react-redux์˜ ์–ด๋–ค ๋ฒ„์ „์ด react-redux์˜ ์–ด๋–ค ๋ฒ„์ „์— ๋งคํ•‘๋˜๋Š”์ง€ ์–ด๋–ป๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์ˆซ์ž๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜๋Š” ๊ฑฐ๊ธฐ์—์„œ ๊ธธ์„ ์žƒ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด PR์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. #34090

๊ทผ๋ณธ์ ์ธ ๋ฌธ์ œ๊ฐ€ ๋ฒ„์ „ 7.0.5์—์„œ ์•„์ง ์ˆ˜์ •๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ์—ด์–ด์•ผ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?
(devDependencies์— @types/hoist-non-react-statics + hoist-non-react-statics๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ณ )

100% ์ด๊ฒƒ์ด ๋‹ซํžˆ์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค๋Š” ๋ฐ ๋™์˜ํ•˜๋ฉฐ devDependancies์— ์ˆ˜๋™์œผ๋กœ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๋Š” ํ•œ ์—ฌ์ „ํžˆ ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ ์‚ฌ๋žŒ๋“ค์ด ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ฌด์‹œํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ์ ์ ˆํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ œ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค. #34406

์ด์ œ PR์ด ๋ณ‘ํ•ฉ๋˜์—ˆ์œผ๋ฏ€๋กœ react-redux ์œ ํ˜•์€ hoist-non-react-statics์— ๋Œ€ํ•œ ์ข…์†์„ฑ์„ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

๋‚˜๋„ ๊ทธ๋ ‡๊ฒŒ ์ƒ๊ฐํ•ด. ํ•˜์ง€๋งŒ ์ข…์†์„ฑ์„ ์ œ๊ฑฐํ•˜๊ณ (์ œ๊ฑฐ) ๋‹ค์‹œ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ฒ—์–ด๋‚  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.


๋ณด๋‚ธ ์‚ฌ๋žŒ: Maurice [email protected]
๋ณด๋‚ธ ๋‚ ์งœ: 2019๋…„ 4์›” 4์ผ ๋ชฉ์š”์ผ ์˜คํ›„ 3:53:32
๋ฐ›๋Š” ์‚ฌ๋žŒ: ํ™•์‹คํ•˜๊ฒŒ ์ž…๋ ฅ๋จ/ํ™•์‹คํžˆ ์ž…๋ ฅ๋จ
์ฐธ์กฐ: wolfy1339; ์„ค๋ช…์„œ
์ œ๋ชฉ: Re: [DefinitelyTyped/DefinitelyTyped] [@types/react-redux] 'hoist-non-react-statics'์— ๋‚ด๋ณด๋‚ธ ๋ฉค๋ฒ„ 'NonReactStatics'๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค(#33690).

์ด์ œ PR์ด ๋ณ‘ํ•ฉ๋˜์—ˆ์œผ๋ฏ€๋กœ react-redux ์œ ํ˜•์€ hoist-non-react-statics์— ๋Œ€ํ•œ ์ข…์†์„ฑ์„ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

โ€”
์ด ์Šค๋ ˆ๋“œ์— ๊ฐ€์ž…ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅ์„ ๋ณด๋‚ด๊ฑฐ๋‚˜ GitHub https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33690#issuecomment-480039685 ์—์„œ ํ™•์ธํ•˜๊ฑฐ๋‚˜ https://github.com/notifications/unsubscribe-auth/AEYfFbvvu7_1ZrU42jUU ์Šค๋ ˆ๋“œ๋ฅผ ์Œ์†Œ๊ฑฐ

react-redux ํƒ€์ดํ•‘์„ ๋ง์”€ํ•˜์‹œ๋Š” ๊ฑด๊ฐ€์š”? ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์‹œ๋„ํ•  ๊ฒƒ์ด๋‹ค.

@wolfy1339 https://github.com/DefinitelyTyped/DefinitelyTyped/pull/34406 ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. hoist-non-react-statics ๊ฐ€ @types/hoist-non-react-statics ( node_modules/@types/hoist-non-react-statics/node_modules/hoist-non-react-statics ) ๋‚ด๋ถ€์— ์„ค์น˜๋  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— TS๊ฐ€ ์—ฌ์ „ํžˆ ๋‚ด ๋ฃจํŠธ ๋ฒ„์ „( node_modules/hoist-non-react-statics )์˜ ์œ ํ˜•์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ด ์‹œ์ ์—์„œ ์‹œ๋„ํ•ด ๋ณผ ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

@weswigham ์ด ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค - npm ๋Œ€์‹  yarn์„ ์‚ฌ์šฉํ•˜์—ฌ ์ข…์†์„ฑ์„ ์„ค์น˜ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๋‹น์‹ ์ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ์‹œ๋„ํ•ด ๋ณผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€์ˆ˜์ ์œผ๋กœ ๊ฒŒ์‹œํ•˜์‹ญ์‹œ์˜ค.

@alan-mroczek ์šฐ๋ฆฌ๋Š” ์›์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๋„์›€์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋‹ค๋ฅธ ๋ฌด์–ธ๊ฐ€๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. (์ž ๊ธˆ ํŒŒ์ผ?)

์ •ํ™•ํ•œ ๋ฌธ์ œ๋ฅผ ์ดํ•ดํ•˜๊ณ  ์žˆ๋Š”์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ, ์›์‚ฌ๋กœ ์ž‘์—…ํ•œ ์†”๋ฃจ์…˜์€ package.json์— resolution ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

"resolutions": {
  "hoist-non-react-statics": ">=3.3.0"
}

์ด ๋ฌธ์ œ๋Š” "@types/react-redux": "7.0.8", ๋Œ€ํ•ด ์—ฌ์ „ํžˆ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ "ํ•ด์ƒ๋„"๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์€ "ํ•ด์ƒ๋„"๊ฐ€ monorepo(์›์‚ฌ ์ž‘์—… ๊ณต๊ฐ„)์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ณดํŽธ์ ์ธ ์†”๋ฃจ์…˜์ด ์•„๋‹™๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์–ด์จŒ๋“  ํ•ด๊ฒฐ์ฑ…์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ๊ธฐ๋Œ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ œ ์ƒ๊ฐ์—๋Š” @types ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋œ ํ›„ "๊ทธ๋ƒฅ ์ž‘๋™"ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด ์ „์ฒด ์‹œ๋ จ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์€ ์ด๋ฅผ ํ”ผ์–ด ์ข…์†์„ฑ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๊นŒ? ๋ฌผ๋ก  ์™„๋ฒฝํ•˜์ง€๋Š” ์•Š์ง€๋งŒ typescript๊ฐ€ ํ•„์š”ํ•œ ์ข…์†์„ฑ์„ ์ฐพ๋„๋ก ๋ณด์žฅํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

Android์šฉ Outlook ๋‹ค์šด๋กœ๋“œ https://aka.ms/ghei36


๋ณด๋‚ธ ์‚ฌ๋žŒ: Maurice [email protected]
๋ณด๋‚ธ ๋‚ ์งœ: 2019๋…„ 4์›” 29์ผ ์›”์š”์ผ ์˜คํ›„ 12:30:06
๋ฐ›๋Š” ์‚ฌ๋žŒ: ํ™•์‹คํ•˜๊ฒŒ ์ž…๋ ฅ๋จ/ํ™•์‹คํžˆ ์ž…๋ ฅ๋จ
์ฐธ์กฐ: wolfy1339; ์–ธ๊ธ‰ํ•˜๋‹ค
์ œ๋ชฉ: Re: [DefinitelyTyped/DefinitelyTyped] [@types/react-redux] 'hoist-non-react-statics'์— ๋‚ด๋ณด๋‚ธ ๋ฉค๋ฒ„ 'NonReactStatics'๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค(#33690).

๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์–ด์จŒ๋“  ํ•ด๊ฒฐ์ฑ…์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ๊ธฐ๋Œ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ œ ์ƒ๊ฐ์—๋Š” @types https://github.com/types ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋œ ํ›„ "๊ทธ๋ƒฅ ์ž‘๋™"ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33690#issuecomment-487649204 ์—์„œ ํ™•์ธํ•˜๊ฑฐ๋‚˜ https://github.com/notifications/unsubscribe-auth/ABDB6FL2OUVTTX754VHAMRCVMQ4PA5 ์Šค๋ ˆ๋“œ๋ฅผ ์Œ์†Œ๊ฑฐ

๋งŽ์€ ๊ฒƒ์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ @types/react-redux 7.0.1๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์ด ์—ฌ์ „ํžˆ ํ˜„์žฌ ์ž‘๋™ํ•˜๋Š” ์œ ์ผํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

๋‚˜์—๊ฒŒ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€! ํ•˜์ง€๋งŒ ์–ธ์  ๊ฐ€๋Š” ์ง„์ •ํ•œ ์ˆ˜์ •์ด ์ด๋ฃจ์–ด์ง€๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค(์ด ์˜ค๋ž˜๋œ ์ข…์†์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์€ ์ด์ƒํ•ฉ๋‹ˆ๋‹ค!).

react-redux ํƒ€์ดํ•‘์—์„œ #34406๊ณผ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  hoist-non-react-statics ์— ์ง์ ‘ ์ข…์†์„ฑ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. NPM & Yarn์ด ๋ฐ˜๋“œ์‹œ "์˜ฌ๋ฐ”๋ฅธ" ๋ฒ„์ „์„ ๋„ฃ์ง€ ์•Š์„ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. hoist-non-react-statics ์œ„์˜ ๋””๋ ‰ํ† ๋ฆฌ์— @types/react-redux (์ด ๊ฒฝ์šฐ TS๊ฐ€ v2.5์˜ ๋‚ด์žฅ index.d.ts ๊ฐ€์ ธ์˜ด)

์ด๊ฒƒ์€ ์ •๋ง ์ง€๋…ํ•œ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค(TypeScript๊ฐ€ @types/hoist-non-react-statics/index.d.ts ์ง์ ‘ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ฉด ์ด๋ก ์ ์œผ๋กœ ์™„ํ™”๋  ์ˆ˜ ์žˆ์ง€๋งŒ ํ•ฉ๋ฆฌ์ ์ธ ๋Œ€์•ˆ์ด ์—†์Šต๋‹ˆ๋‹ค(๊ธฐ๋ณธ์ ์œผ๋กœ @types/hoist-non-react-statics ์— ์˜์กดํ•˜๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ). ๋˜‘๊ฐ™์ดํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค)

react-redux ํƒ€์ดํ•‘์—์„œ #34406๊ณผ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  hoist-non-react-statics ์— ์ง์ ‘ ์ข…์†์„ฑ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. NPM & Yarn์ด ๋ฐ˜๋“œ์‹œ "์˜ฌ๋ฐ”๋ฅธ" ๋ฒ„์ „์„ ๋„ฃ์ง€ ์•Š์„ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. hoist-non-react-statics ์œ„์˜ ๋””๋ ‰ํ† ๋ฆฌ์— @types/react-redux (์ด ๊ฒฝ์šฐ TS๊ฐ€ v2.5์˜ ๋‚ด์žฅ index.d.ts ๊ฐ€์ ธ์˜ด)

์ด๊ฒƒ์€ ์ •๋ง ์ง€๋…ํ•œ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค(TypeScript๊ฐ€ @types/hoist-non-react-statics/index.d.ts ์ง์ ‘ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ฉด ์ด๋ก ์ ์œผ๋กœ ์™„ํ™”๋  ์ˆ˜ ์žˆ์ง€๋งŒ ํ•ฉ๋ฆฌ์ ์ธ ๋Œ€์•ˆ์ด ์—†์Šต๋‹ˆ๋‹ค(๊ธฐ๋ณธ์ ์œผ๋กœ @types/hoist-non-react-statics ์— ์˜์กดํ•˜๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ). ๋˜‘๊ฐ™์ดํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค)

'../hoist-non-react-statics'์—์„œ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ?
๋‚ด๊ฐ€ ๋ณผ ๋•Œ '@types/hoist-non-react-statics' ํŒจํ‚ค์ง€๋Š” '@types/react-redux'๊ฐ€ ์„ค์น˜๋  ๋•Œ ์ž๋™์œผ๋กœ ์„ค์น˜๋˜๋ฏ€๋กœ ๋ˆ„๋ฝ๋  ์œ„ํ—˜์ด ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋‚˜์—๊ฒŒ ์ ํ•ฉํ•œ ์†”๋ฃจ์…˜์„ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด 2๊ฐœ์˜ ํŒŒ์ผ์„ ์ฒจ๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

hoist-non-react-statics_index.d.txt
๋ฐ˜์‘ redux_index.d.txt

npm์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์„ ๊ณ ๋ คํ•  ๋•Œ hoist-non-react-statics ํƒ€์ดํ•‘์ด react-redux ์˜ ํ˜•์ œ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋‹ค๊ณ  ๋ณด์žฅํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์„ค์น˜ํ•œ ๋‹ค๋ฅธ ์ข…์†์„ฑ์— ๋”ฐ๋ผ ์กฐ๋ถ€๋ชจ์ผ ์ˆ˜๋„ ์žˆ๊ณ  ์ž์‹์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋‚˜๋ฅผ ์œ„ํ•ด ๊นจ์กŒ์Šต๋‹ˆ๋‹ค. ๋‚ด export default connect()(MyComponent) ์— any ์œ ํ˜•์ด ์ง€์ •๋ฉ๋‹ˆ๋‹ค. 7.0.1 ๋Œ์•„๊ฐ€์„œ ์ด ๋ถ€๋ถ„์„ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค... ์ด๊ฒƒ์€ 7.0.2 ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์Šคํ‹ธ๋กœ ๋ฐœ์ƒ 7.1.0 ๋ฐ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œ 7.0.1 ์šฐ๋ฆฌ์— ๋Œ€ํ•œ ์˜ต์…˜์ด๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ๊ฐ€ ํ•„์š” TS 3.5.2 (์™€ TS 3.4.5 , 7.0.1 ์ž‘๋™) 7.0.1 ์™€ ํ•จ๊ป˜ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

node_modules/@types/react-redux/index.d.ts:109:84 - error TS2344: Type 'GetProps<C>' does not satisfy the constraint 'Shared<TInjectedProps, GetProps<C>>'.
  Type 'unknown' is not assignable to type 'Shared<TInjectedProps, GetProps<C>>'.

๊ทธ๋ž˜์„œ, ์–ด๋–ค .. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•? ๋‚˜๋Š” ๊ทธ ์ฃผ์ œ์— ๋Œ€ํ•œ ์ „๋ฌธ๊ฐ€๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด๊ฐ€ ์ด๊ฒƒ์„ ๊ฐ€์ง€๊ณ  ๋ฌด์—‡์„ ํ•ด์•ผ ํ•˜๋Š”์ง€ ์ดํ•ดํ•  ์ˆ˜ ์—†๋‹ค.

@tsakalidiskostas

๊ธ€์Ž„, ์šฐ๋ฆฌ๋Š” react-redux ์œ ํ˜•์˜ ์ˆ˜์ •๋œ ๋ฒ„์ „์„ ์ €์žฅ์†Œ์— ์ปค๋ฐ‹ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ( patch-package ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ ํ›„ ํ•„์š”ํ•œ ์›์‚ฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ๋งˆ์Œ์— ๋“ค์ง€ ์•Š์œผ๋ฉด ์ž„์‹œ ํ•ด๊ฒฐ์ฑ…์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๋Š” ๋‹จ์ˆœํžˆ ๋‹ค์Œ ์ค„์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

> = ComponentClass<JSX.LibraryManagedAttributes<C, P>> & hoistNonReactStatics.NonReactStatics<C> & {

์—๊ฒŒ:

> = ComponentClass<JSX.LibraryManagedAttributes<C, P>> & {

์šฐ๋ฆฌ๋Š” ์ •์ ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ์—๊ฒŒ ํ•ด๋ฅผ ๋ผ์น˜์ง€๋Š” ์•Š์ง€๋งŒ ๋ฌผ๋ก  ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์†”๋ฃจ์…˜์€ ์•„๋‹ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฉ‹์žˆ๋Š”! ๋‚˜๋Š” @alessioprestileo ์˜ ๋ณ€๊ฒฝ ์ œ์•ˆ๊ณผ ํ•จ๊ป˜ ๊ฐ”๋‹ค.

import hoistNonReactStatics = require('hoist-non-react-statics');

~์„์œ„ํ•œ

import { NonReactStatics } from '../hoist-non-react-statics';

ํ†ตํ™”๋ฅผ ๋‹ค์Œ์œผ๋กœ ๋ณ€๊ฒฝ

> = ComponentClass<JSX.LibraryManagedAttributes<C, P>> & NonReactStatics<C> & {

๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ ์ €์—๊ฒŒ๋„ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๊ท€ํ•˜์˜ ๋‹ต๋ณ€์„ ๋ณด์•˜์„ ๋•Œ ์—…๋ฐ์ดํŠธ๋กœ ํ–ฅํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. D

์ˆ˜์ • ์‚ฌํ•ญ์ด ํฌํ•จ๋œ ์ƒˆ ๋ฒ„์ „์„ npm์— ๊ฒŒ์‹œํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? :)

hoist-non-react-statics์˜ ์œ ์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ์ž…๋ ฅ์„ ๋‹ค์‹œ ์ €์žฅ์†Œ๋กœ ํ™•์ธํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ทธ๋ž˜์„œ .. ์ด๋Ÿฐ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ ์•„๋‹ˆ๋ฉด ์ด์— ๋Œ€ํ•œ ํฌํฌ ๋ณ€๊ฒฝ์„ ์ง„ํ–‰ํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

์•ˆ๋…•ํ•˜์„ธ์š”. ์šฐ๋ฆฌ๋Š” ๋˜ํ•œ ์ตœ์‹ ์œผ๋กœ ์—…๋ฐ์ดํŠธ 7.1.1 ์˜ @types/react-redux ํฌํ•จ ๋œ ๋ฒ„์ „ react-redux : 7.1.0 ์šฐ๋ฆฌ๋Š” NPM์ด ์˜ค๋ฅ˜๋ฅผ๋ณด๊ณ ์žˆ๋‹ค. ์ด๊ฒƒ์„ ์–ธ๊ธ‰ํ•˜๋Š” ๋ชจ๋“  ํ‹ฐ์ผ“์ด ๋งˆ๊ฐ๋˜์–ด ํ˜ผ๋ž€์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.
7.0.1 ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€๋งŒ ์ตœ์‹  Typescript ๋ฒ„์ „ 3.5.x ์‚ฌ์šฉํ•˜๋ฉด ์ƒˆ๋กœ์šด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

/.../node_modules/@types/react-redux/index.d.ts(109,84): error TS2344: Type 'GetProps<C>' does not satisfy the constraint 'Shared<TInjectedProps, GetProps<C>>'.
  Type 'unknown' is not assignable to type 'Shared<TInjectedProps, GetProps<C>>'.
    Type 'Matching<TInjectedProps, GetProps<C>>' is not assignable to type 'Shared<TInjectedProps, GetProps<C>>'.
      Type 'P extends keyof TInjectedProps ? TInjectedProps[P] extends GetProps<C>[P] ? GetProps<C>[P] : TInjectedProps[P] : GetProps<C>[P]' is not assignable to type 'TInjectedProps[P] extends GetProps<C>[P] ? GetProps<C>[P] : never'.

์ข€ ์Šฌํ”ˆ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

@types/react-redux ์˜ ์ตœ์‹  ๋ฒ„์ „(์˜ˆ: 7.1.1 )์€ @types/react-redux Shared<TInjectedProps, GetProps<C>> ๋ฅผ ์ œ์•ฝ ์กฐ๊ฑด์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (์ •ํ™•ํžˆ ์ œ์•ฝ ์กฐ๊ฑด์ด ์ž˜๋ชป๋˜์—ˆ์Œ์„ ์ง€์ ํ•œ TS์˜ ์ˆ˜์ • ์‚ฌํ•ญ ๋•Œ๋ฌธ). - react-redux ์œ ํ˜•์˜ ์ด์ „ ๋ฒ„์ „์˜ ์ค‘์ฒฉ ํฌํ•จ์„ ๊ฐ•์ œํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. "ํŒจ์น˜ ํŒจํ‚ค์ง€"๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

ํŒจ์น˜ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์‹ค์ œ๋กœ ๋งค์šฐ ์‰ฝ์Šต๋‹ˆ๋‹ค! ๊ตฌ์„ฑ์— ์ถ”๊ฐ€ํ•˜๊ณ  npm์œผ๋กœ ์„ค์น˜ํ•œ ๋‹ค์Œ ์ˆ˜์ •ํ•˜๊ณ  ์ž‘๋™ ์ค‘์ธ ๋ณ€๊ฒฝ๋œ ๋ชจ๋“ˆ์—์„œ ํŒจ์น˜ ํŒจํ‚ค์ง€ ๋ช…๋ น์„ ๋ˆ„๋ฅด๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด์ œ ์ˆ˜์ •ํ•œ ๋ชจ๋“ˆ์˜ ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ๋งŒ ์žˆ๊ณ  ๋„ˆ๋ฌด ํ™”๋ คํ•˜๊ฑฐ๋‚˜ ๋„ˆ๋ฌด ํฐ ๋“ฑ์€ ์—†๋Š” ํŒจ์น˜ ํŒจํ‚ค์ง€ ์•„๋ž˜์— ์žˆ๋Š” ๋ช‡ ๊ฐœ์˜ ๋ชจ๋“ˆ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๊ฐ€ ์ˆ˜์ •๋˜๊ณ  ์ข…์†์„ฑ์ด ์†์‹ค๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ˆ˜์ •๋  ๋•Œ ํ•˜๋‚˜ ๋˜๋Š” ๋‘ ๊ฐœ์˜ ํŒŒ์ผ์„ ์‰ฝ๊ฒŒ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ชจ๋‘ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

hoist-non-react-statics ๋ฅผ ์„ค์น˜ํ•˜๋ฉด react-redux 7.1.0 ๋ฐ @types/react-redux 7.1.1์— ๋Œ€ํ•œ ์ด ์˜ค๋ฅ˜๊ฐ€ ํ•ด๊ฒฐ๋œ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” Typescript 3.4.3๋„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์™œ ์ด ๋ฌธ์ œ๊ฐ€ ์ข…๋ฃŒ๋˜์—ˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€๋ฅผ ํŒจ์น˜ํ•˜๊ฑฐ๋‚˜ ๋ชจ๋“ˆ ํ™•์ธ ํŠธ๋ฆฌ๋ฅผ ์žฌ์ •์˜ํ•˜์ง€ ์•Š๊ณ ๋„ ๋” ํ•ฉ๋ฆฌ์ ์ธ ์†”๋ฃจ์…˜์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@jalMogo ์™€ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€

์ด ๋ฌธ์ œ๊ฐ€ ๊ณ„์† ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

@jalMogo ๋‚ด๊ฐ€ ์ดํ•ดํ•˜๋Š” ํ•œ ์ด๊ฒƒ์€ redux์˜ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ hoist-non-react-statics์˜ ๋ฌธ์ œ์ด๋ฏ€๋กœ ์—ฌ๊ธฐ์—์„œ ๋ฌธ์ œ๋ฅผ ์ข…๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์Šค๋ ˆ๋“œ์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์ง€๋งŒ ์ˆ™๋ จ ๋œ ์‚ฌ๋žŒ์ด ํ˜ธ์ด์ŠคํŠธ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ œ๊ณตํ•˜๋ฉด ๋” ์ข‹์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ํ˜ธ์ด์ŠคํŠธ-๋น„๋ฐ˜์‘-์ •์—ญํ•™์˜ ๋ฌธ์ œ๋ผ๋Š” ๋ฐ ๋™์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ node_modules ํŠธ๋ฆฌ์— ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ hoist-non-react-statics์˜ ์ด์ „ ๋ฒ„์ „๊ณผ ์ž˜๋ชป๋œ ๋ฒ„์ „์„ ๋ณด๊ฒŒ ๋œ๋‹ค๋Š” ์ ์—์„œ redux์— ๋Œ€ํ•œ ์„ค๋ช…์˜ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋ผ์šฐํ„ฐ์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ํ•ญ๋ชฉ์ด ์„ค์น˜๋  ๋•Œ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. . ์ข…์†์„ฑ์„ ์ ์ ˆํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๊ณ  ์ƒˆ ๋ฒ„์ „์„ node_modules ํŠธ๋ฆฌ์— ๋” ๊ฐ€๊น๊ฒŒ ์ ์ ˆํ•˜๊ฒŒ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

+1

์—ฌ์ „ํžˆ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์ฝ”๋“œ์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋‹ค๊ณ  ๋ฆฐํŠธ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์•„์ง ์ด ์ž‘์—…์„ ํ•˜๊ณ  ์žˆ๊ฑฐ๋‚˜ ํ์‡„๋œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ตœ์‹  ๋ฒ„์ „์ด ๋ชจ๋‘ ์„ค์น˜๋˜์–ด ์žˆ๋Š”๋ฐ๋„ ์—ฌ์ „ํžˆ ๋‹ค์Œ์„ ์–ป์Šต๋‹ˆ๋‹ค.

๋„ค์ž„์ŠคํŽ˜์ด์Šค '"/home/myhome/Projects/node_modules/hoist-non-react-statics/index"' ๋‚ด๋ณด๋‚ธ ๋ฉค๋ฒ„ 'NonReactStatics'.ts(2694)๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ํ™•์‹คํžˆ ๊ทธ๋“ค์˜ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•: @types/hoist-non-react-statics ๊ฐ€ ์ž‘๋™ํ•˜๋ ค๋ฉด ํ”„๋กœ์ ํŠธ์˜ ์ข…์†์„ฑ์œผ๋กœ ๋‚˜์—ด๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
"์ข…์†์„ฑ": {
...
"@types/hoist-non-react-statics": "^3.3.1",

๋‚ด package.json์— ์žˆ์Šต๋‹ˆ๋‹ค

๋‚ด ์ž˜๋ชป์ด์•ผ. hoist-non-react-statics


๋ณด๋‚ธ ์‚ฌ๋žŒ: Robert Rehammar [email protected]
๋ณด๋‚ธ ๋‚ ์งœ: 2019๋…„ 10์›” 20์ผ ์ผ์š”์ผ ์˜ค์ „ 1:50:51
๋ฐ›๋Š” ์‚ฌ๋žŒ: ConfirmTyped/DefinitelyTyped ํ™•์‹คํ•˜๊ฒŒ[email protected]
์ฐธ์กฐ: wolfy1339 [email protected] ; ๋ฉ˜์…˜ @noreply.github.com
์ œ๋ชฉ: Re: [DefinitelyTyped/DefinitelyTyped] [@types/react-redux] 'hoist-non-react-statics'์— ๋‚ด๋ณด๋‚ธ ๋ฉค๋ฒ„ 'NonReactStatics'๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค(#33690).

๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
"์ข…์†์„ฑ": {
...
"@types/hoist-non-react-statics": "^3.3.1",

๋‚ด package.json์— ์žˆ์Šต๋‹ˆ๋‹ค

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
GitHub์˜์— ๊ทธ๊ฒƒ์„ ์ง์ ‘์ด ์ด๋ฉ”์ผ์— ํšŒ์‹  ๋ณผ https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33690?email_source=notifications&email_token=ABDB6FORFBHI575QMINWIQ3QPPWTXA5CNFSM4G4MRVM2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBYC7IY#issuecomment-544223139 , ๋˜๋Š” ํƒˆํ‡ด https://github.com/notifications/unsubscribe- ์ธ์ฆ/ABDB6FLBLRAIO2PIIGMMJY3QPPWTXANCNFSM4G4MRVMQ .

๋‚ด ์˜์กด์„ฑ์—๋Š” "hoist-non-react-statics": "^3.3.0" "@types/hoist-non-react-statics": "^3.3.1" ๊ฐ€ ์žˆ๊ณ  devDependencies์—๋Š”

๋˜ํ•œ ๋ช…์‹œ์ ์œผ๋กœ "@types/hoist-non-react-statics" ์„ค์น˜ํ•˜์ง€ ์•Š๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ(๋‚ด๊ฐ€ ์ดํ•ดํ•œ ๋ฐ”์— ๋”ฐ๋ฅด๋ฉด ๊ธฐ๋ณธ ํŒจํ‚ค์ง€์—๋Š” ์ด๋ฏธ ์ž…๋ ฅ์ด ํฌํ•จ๋˜์–ด ์žˆ์–ด์•ผ ํ•จ) ๊ฒฐ๊ณผ๋Š” ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์— ์ง๋ฉดํ•œ ์‚ฌ๋žŒ์€ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์žฌ์ƒ์‚ฐ์„ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋„์›€์„ ๋“œ๋ฆด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ œ๊ฐ€ ๊ฒช๊ณ  ์žˆ๋Š” ํ”„๋กœ์ ํŠธ๋Š” ์˜คํ”ˆ ์†Œ์Šค๊ฐ€ ์•„๋‹ˆ๋ฉฐ ์ด๋ฅผ ์„ ๋ณด์ผ ๋ณ„๋„์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค ์‹œ๊ฐ„์ด ์—†์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๊ทธ๋Ÿฌ๋‚˜ ํ†ต์ง€๋ฅผ ํ•œ ์ผ์€ I๊ฐ€ ํ™œ์„ฑํ™” ๋  ๋•Œ๊นŒ์ง€ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋” ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ๋‹ค์ž…๋‹ˆ๋‹ค allowJs: true ์— tsconfig.json . ์ด ์„ค์ •์ด ์—†์œผ๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์—ฌ์ „ํžˆ ์ž˜ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

'hoist-non-react-statics'๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์—ฌ๊ธฐ์—์„œ ํ•ด๊ฒฐ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

repro๋Š” @types/react-redux๋ฅผ ์„ค์น˜ํ•œ ๋‹ค์Œ react-redux์˜ ๋ชจ๋“  ๊ฒƒ์„ tsx ํŒŒ์ผ๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์€ tsconfig.json์— "skipLibCheck": true๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ตœ์ƒ์˜ ์†”๋ฃจ์…˜์€ ์•„๋‹ˆ์ง€๋งŒ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

typescript๊ฐ€ ๋‹ค์Œ ์ˆœ์„œ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

  1. package/package.json[types]
  2. @types/package
  3. package ( types ํ•„๋“œ๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ํ•ญ๋ชฉ)

์™œ ๊ทธ๋ ‡๊ฒŒ ํ•˜๋Š”์ง€๋Š” ๋ฏธ์Šคํ„ฐ๋ฆฌ์ง€๋งŒ ์—ฌ๊ธฐ์— ๋ฌธ์„œํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. https://www.typescriptlang.org/docs/handbook/module-resolution.html#how -typescript-resolves-modules

์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ:

node_modules/
  @types/
    hoist-non-react-statics/ (3.3.0)
    react-redux/
      node_modules/
        hoist-non-react-statics/ (3.3.0)

  hoist-non-react-statics/
    package.json (2.0, which has a types field!!!)
    index.d.ts

๊ทธ๋Ÿฐ ๋‹ค์Œ typescript๋Š” ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. ํ˜„์žฌ ๋ฒ„์ „์— ์œ ํ˜•์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— node_modules/@types/react-redux/node_modules/hoist-non-react-statics ์—์„œ ์œ ํ˜•์„ ๊ฐ€์ ธ์˜ค์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.
  2. package.json ์— types ํ•„๋“œ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— node_modules/hoist-non-react-statics (์ด์ „ ๋ฒ„์ „)์—์„œ ์œ ํ˜•์„ ์ฐพ๋Š” ๋ฐ ์„ฑ๊ณต

๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์€ ์ตœ์‹ ์— ํ”„๋กœ์ ํŠธ์˜ ์ข…์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ์–ธ๊ธ‰ ํ•œ ๋”ฐ๋ผ์„œ์œผ๋กœ hoist-non-react-statics ๊ทธ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์—, types ํ•„๋“œ package.json ๊ทธ๋ ‡๊ฒŒ 2๋‹จ๊ณ„๋ฅผ ์‹คํŒจํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์•„์ด๋Ÿฌ๋‹ˆํ•˜๊ฒŒ๋„ ํ”„๋กœ์ ํŠธ์— ์ด์ „ hoist-non-react-statics ์— ์ข…์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: 3.0.0). ์ด๊ฒƒ์€ ์˜ฌ๋ฐ”๋ฅธ ๋ฒ„์ „(3.3.0)์„ node_modules/@types/react-redux/node_modules/types/hoist-non-react-statics ๊ฐ•์ œ๋กœ ์„ค์น˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ด์ „์— ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.confounded:

๋‘ ๊ฐ€์ง€ ์งˆ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  1. typescript๋Š” ์™œ types ํ•„๋“œ๋ฅผ ์ด๋Ÿฐ ์‹์œผ๋กœ ํŠน๋ณ„ํžˆ ์ฒ˜๋ฆฌํ•˜๊ณ  types ํ•„๋“œ์˜ ์‚ฌ์šฉ ์—ฌ๋ถ€์— ๋”ฐ๋ผ @types ํŒจํ‚ค์ง€ ์•ž์ด๋‚˜ ๋’ค์— ์˜ต๋‹ˆ๋‹ค.
  2. hoist-non-react-statics ํ•œ ๋ฒˆ ์œ ํ˜•์ด ๋‚ด์žฅ๋˜์–ด ์žˆ์—ˆ๋‹ค๋ฉด ์™œ ์—ฌ๊ธฐ์—์„œ ์ œ์™ธ๋˜์—ˆ์Šต๋‹ˆ๊นŒ? ์œ ํ˜•์ด ํŒจํ‚ค์ง€์— ๋‚ด์žฅ๋˜์–ด ์žˆ์œผ๋ฉด ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‘ ๊ฐœ์˜ ์—ฐ๊ฒฐ ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— yarn/NPM์ด ์ฝ”๋“œ ๋ฐ ์œ ํ˜•์— ๋Œ€ํ•œ ๋ณ„๋„์˜ ํŒจํ‚ค์ง€๋ฅผ ์–ด๋–ป๊ฒŒ ์ ์ ˆํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ์ตœ์‹  ํŒจํ‚ค์ง€ ๋ฒ„์ „์—์„œ ๋‹ค์‹œ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์˜ˆ:

[email protected]
@types/[email protected]

package.json ๋‹ค์Œ ํŒจํ‚ค์ง€๋ฅผ ์ˆ˜๋™์œผ๋กœ ํฌํ•จํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

[email protected]
@types/[email protected]

๋‚ด ์ดˆ๊ธฐ npm install ์ดํ›„์˜ hoist-non-react-statics ํŒจํ‚ค์ง€ ๋•Œ๋ฌธ์— ๋‚ด node_modules ํด๋”์— ์ด๋Ÿฌํ•œ ํŒจํ‚ค์ง€์˜ ์ค‘๋ณต์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. npm dedupe ํ•˜๋ฉด ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

ํ•จ๊ป˜ ์˜ค์‹œ๋Š” ๋‹ค๋ฅธ ๋ถ„๋“ค๊ป˜ ๋„์›€์ด ๋˜๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค!

์ด ๋ฌธ์ œ๋„ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. @DannyDelott ์˜ ์†”๋ฃจ์…˜์— ์ฐฌ์‚ฌ๋ฅผ

์ด ๋ฌธ์ œ๋„ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. @DannyDelott ์˜ ์†”๋ฃจ์…˜์— ์ฐฌ์‚ฌ๋ฅผ

์ง์ ‘์ ์œผ๋กœ ํ•„์š”ํ•˜์ง€ ์•Š์€ ์ข…์†์„ฑ์œผ๋กœ package.json ์„ ์˜ค์—ผ์‹œํ‚ค์ง€ ์•Š๊ณ  ํ˜„์žฌ๋กœ์„œ๋Š” ๊ฐ€์žฅ ๋น ๋ฅธ ํ•ด๊ฒฐ์ฑ…์€ @types/react-redux ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

npm remove @types/react-redux

์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋œ ๊ฒƒ์œผ๋กœ ํ™•์ธ๋˜๋ฉด ๋‹ค์‹œ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ ์–ธ๊ธ‰๋œ ์ข…์†์„ฑ์„ ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ด์ƒ์ ์ด์ง€ ์•Š์œผ๋ฏ€๋กœ ๊ณง ์ˆ˜์ •๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค!

์—ฌ์ „ํžˆ ์ด ๋ฌธ์ œ๋ฅผ ์ธ์ง€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์•ˆ์ •์ ์ธ ์ˆ˜์ •์ด ์ œ๊ณต๋˜๋Š” ๋™์•ˆ ๊ณ„์† ๊ฐœ๋ฐœํ•˜๋ ค๋Š” ์‚ฌ๋žŒ์€ ์•„๋ž˜์˜ typedef๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

// [your-src-folder]/types/hoist-non-react-statics.d.ts

declare module 'hoist-non-react-statics' {
  type NonReactStatics<T> = any;
  export { NonReactStatics }
}

์ด๊ฒƒ์€ ์ด์ƒ์ ์ธ ์†”๋ฃจ์…˜์€ ์•„๋‹ˆ์ง€๋งŒ ์ ์–ด๋„ TS์—์„œ ๋นŒ๋“œ ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰