Tedious: `였λ₯˜ TS2304: v6.6.1μ—μ„œ 'StringDecoder' 이름을 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.`

에 λ§Œλ“  2019λ…„ 11μ›” 27일  Β·  8μ½”λ©˜νŠΈ  Β·  좜처: tediousjs/tedious

λ‚΄ ν”„λ‘œμ νŠΈλ₯Ό μ»΄νŒŒμΌν•  λ•Œ,

../../node_modules/@types/readable-stream/index.d.ts:138:18 - error TS2304: Cannot find name 'StringDecoder'.

138         decoder: StringDecoder | null;
                     ~~~~~~~~~~~~~

λ…Έλ“œ: 10.16.0
νƒ€μ΄ν”„μŠ€ν¬λ¦½νŠΈ: 3.3.3333
μ§€λ£¨ν•œ: 6.6.1

μ§€λ£¨ν•œ 버전을 6.5.0으둜 λ³€κ²½ν•˜λ©΄ μž‘λ™ν•©λ‹ˆλ‹€.
이것이 https://github.com/tediousjs/tedious/issues/1007 κ³Ό 관련이 μžˆλŠ”μ§€ ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

쑰언해쀄 μ‚¬λžŒ?

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

이에 λŒ€ν•œ λ¬Έμ œκ°€ 이미 μ œκΈ°λ˜μ—ˆμŠ΅λ‹ˆλ‹€ https://github.com/DefinitelyTyped/DefinitelyTyped/pull/37869

μˆ˜μ • 사항은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. @anthonylau @obermobber . 이 λ°©λ²•μœΌλ‘œλ„ λ¬Έμ œκ°€ ν•΄κ²°λ˜κΈ°λ₯Ό λ°”λžλ‹ˆλ‹€!
image

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

@anthonylauλ‹˜ , μ–΄λ–»κ²Œ ν”„λ‘œμ νŠΈλ₯Ό μ»΄νŒŒμΌν–ˆλŠ”μ§€μ— λŒ€ν•œ μ„ΈλΆ€ 정보λ₯Ό μ œκ³΅ν•˜κ±°λ‚˜ μž¬μƒμ‚° 슀크립트λ₯Ό μ œκ³΅ν•  수 μžˆμŠ΅λ‹ˆκΉŒ? λ‚˜λŠ” 당신이 μ œκ³΅ν•˜λŠ” λ²„μ „μœΌλ‘œ μ§€λ£¨ν•œ ν”„λ‘œμ νŠΈλ₯Ό μ„€μ •ν–ˆκ³  μ§€λ£¨ν•œ ν”„λ‘œμ νŠΈλŠ” 잘 λΉŒλ“œλ©λ‹ˆλ‹€. λ˜ν•œ μ•½ 9κ°œμ›” 전에 3.3.3333이 λ¦΄λ¦¬μŠ€λ˜μ—ˆμœΌλ―€λ‘œ μ΅œμ‹  λ²„μ „μ˜ Typescript둜 ν”„λ‘œμ νŠΈλ₯Ό μ‹œλ„ν•˜μ‹œκ² μŠ΅λ‹ˆκΉŒ?

@MichaelSun90 λ‹˜, @anthonylau 와 같은 λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” λ˜ν•œ μ§€λ£¨ν•œ v6.5.0을 μœ„ν•΄ 그것을 κ³ μ³€λ‹€.

λ‚΄ μ‹œμž‘ 슀크립트( "start": "nodemon --exec ts-node -- ./src/index.ts" )λ₯Ό 싀행해도 λ¬Έμ œκ°€ λ°œμƒν•˜μ§€ μ•Šμ§€λ§Œ prod λΉŒλ“œ( "tsc -p tsconfig.json" )λ₯Ό μ‹€ν–‰ν•˜λ©΄ λ‹€μŒ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

node_modules/@types/readable-stream/index.d.ts:138:18 - 였λ₯˜ TS2304: 'StringDecoder' 이름을 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.

138 디코더: StringDecoder | μ—†λŠ”;
~ ~ ~~~

였λ₯˜ 1개λ₯Ό μ°Ύμ•˜μŠ΅λ‹ˆλ‹€.

npm 였λ₯˜! μ½”λ“œ ELIFECYCLE
npm 였λ₯˜! 였λ₯˜ 번호 2
npm 였λ₯˜! [email protected] build:prod : tsc -p tsconfig.json
npm 였λ₯˜! μ’…λ£Œ μƒνƒœ 2

λ‚˜λŠ” 그것을 μ‘°ν•©ν•˜μ—¬ μ‚¬μš©ν•œλ‹€
μ†νŽΈ 5.15.1
νƒ€μ΄ν”„μŠ€ν¬λ¦½νŠΈ: 3.3.4000
λ…Έλ“œ: 10.15.3

μ–΄λ–€ μΆ”κ°€ 정보가 ν•„μš”ν•©λ‹ˆκΉŒ?

μΆ”κ°€ 정보:
index.d.ts둜 μ΄λ™ν•˜λ©΄ typescriptκ°€ λ‹€μŒ 문제 정보λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.
'StringDecoder' refers to a value, but is being used as a type here. (ts2749)

이 문제의 좜처λ₯Ό μ΄ν•΄ν•˜λŠ” 데 λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€. https://github.com/DefinitelyTyped/DefinitelyTyped/blob/6a3064cc7408b4e71d0d0feb6f92457d4c22e15c/types/readable-stream/index.d.ts#L132 에 λŒ€ν•œ μ°Έμ‘°κ°€ μ—†μŠ΅λ‹ˆλ‹€. StringDecoder ν•˜μ§€λ§Œ NodeStringDecoder .

μ‹œμŠ€ν…œμ—μ„œ node_modules/@types/readable-stream/index.d.ts 파일의 λ‚΄μš©μ„ 확인할 수 μžˆμŠ΅λ‹ˆκΉŒ?

예, ν™•μΈν–ˆμœΌλ©° ReadableState μΈν„°νŽ˜μ΄μŠ€λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

interface ReadableState {
        objectMode: boolean;
        highWaterMark: number;
        buffer: BufferList<any>;
        length: number;
        pipes: any; // NodeJS.WritableStream | any[]; // TODO
        pipesCount: number;
        flowing: any;
        ended: boolean;
        endEmitted: boolean;
        reading: boolean;
        sync: boolean;
        needReadable: boolean;
        emittedReadable: boolean;
        readableListening: boolean;
        resumeScheduled: boolean;
        destroyed: boolean;
        awaitDrain: number;
        defaultEncoding: string;
        readingMore: boolean;
        decoder: StringDecoder | null;
        encoding: string | null;

        // new (options: ReadableStateOptions, stream: _Readable): ReadableState;
    }

이것은 μ„€μΉ˜ν•œ μ§€λ£¨ν•œ μ’…μ†μ„±μž…λ‹ˆλ‹€.

"readable-stream": {
          "version": "3.4.0",
          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz",
          "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==",
          "requires": {
            "inherits": "^2.0.3",
            "string_decoder": "^1.1.1",
            "util-deprecate": "^1.0.1"
          }

image

λ”°λΌμ„œ 읽기 κ°€λŠ₯ν•œ 슀트림 v 2.3.6이 StringDecoder NodeStringDecoder 와 λ³‘ν•©λœ κ²ƒμ²˜λŸΌ λ³΄μ΄μ§€λ§Œ 아직 κ²Œμ‹œλ˜μ§€ μ•Šμ•˜μ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

image

image

이것은 μ•„λ§ˆλ„ ν™•μ‹€νžˆ μœ ν˜•μ΄ μ§€μ •λœ 문제일 κ²ƒμž…λ‹ˆλ‹€.

이것은 μ„€μΉ˜ν•œ μ§€λ£¨ν•œ μ’…μ†μ„±μž…λ‹ˆλ‹€.

잘λͺ»λœ 읽기 κ°€λŠ₯ν•œ 슀트림 쒅속성을보고 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. λ¬Έμ œλŠ” 2.3.5κ°€ μ„€μΉ˜λ˜μ–΄ μžˆμ–΄μ•Ό ν•˜λŠ” @Types/readable-dependency에 μžˆμŠ΅λ‹ˆλ‹€.

image

이에 λŒ€ν•œ λ¬Έμ œκ°€ 이미 μ œκΈ°λ˜μ—ˆμŠ΅λ‹ˆλ‹€ https://github.com/DefinitelyTyped/DefinitelyTyped/pull/37869

μˆ˜μ • 사항은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. @anthonylau @obermobber . 이 λ°©λ²•μœΌλ‘œλ„ λ¬Έμ œκ°€ ν•΄κ²°λ˜κΈ°λ₯Ό λ°”λžλ‹ˆλ‹€!
image

λ„€, κ·Έλƒ₯ μ“°λ €κ³  ν–ˆμ–΄μš”!
@types/node: 12.12.17을 μ„€μΉ˜ν–ˆκ³  prod λΉŒλ“œκ°€ μ œλŒ€λ‘œ μž‘λ™ν•©λ‹ˆλ‹€. 감사 ν•΄μš”!!

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