λ΄ νλ‘μ νΈλ₯Ό μ»΄νμΌν λ,
../../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 κ³Ό κ΄λ ¨μ΄ μλμ§ νμ€νμ§ μμ΅λλ€.
μ‘°μΈν΄μ€ μ¬λ?
@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"
}
λ°λΌμ μ½κΈ° κ°λ₯ν μ€νΈλ¦Ό v 2.3.6μ΄ StringDecoder
NodeStringDecoder
μ λ³ν©λ κ²μ²λΌ 보μ΄μ§λ§ μμ§ κ²μλμ§ μμμ μ μμ΅λλ€.
μ΄κ²μ μλ§λ νμ€ν μ νμ΄ μ§μ λ λ¬Έμ μΌ κ²μ λλ€.
μ΄κ²μ μ€μΉν μ§λ£¨ν μ’ μμ±μ λλ€.
μλͺ»λ μ½κΈ° κ°λ₯ν μ€νΈλ¦Ό μ’ μμ±μλ³΄κ³ μλ€κ³ μκ°ν©λλ€. λ¬Έμ λ 2.3.5κ° μ€μΉλμ΄ μμ΄μΌ νλ @Types/readable-dependencyμ μμ΅λλ€.
μ΄μ λν λ¬Έμ κ° μ΄λ―Έ μ κΈ°λμμ΅λλ€ https://github.com/DefinitelyTyped/DefinitelyTyped/pull/37869
μμ μ¬νμ λ€μκ³Ό κ°μ΅λλ€. @anthonylau @obermobber . μ΄ λ°©λ²μΌλ‘λ λ¬Έμ κ° ν΄κ²°λκΈ°λ₯Ό λ°λλλ€!
λ€, κ·Έλ₯ μ°λ €κ³ νμ΄μ!
@types/node: 12.12.17μ μ€μΉνκ³ prod λΉλκ° μ λλ‘ μλν©λλ€. κ°μ¬ ν΄μ!!
κ°μ₯ μ μ©ν λκΈ
μ΄μ λν λ¬Έμ κ° μ΄λ―Έ μ κΈ°λμμ΅λλ€ https://github.com/DefinitelyTyped/DefinitelyTyped/pull/37869
μμ μ¬νμ λ€μκ³Ό κ°μ΅λλ€. @anthonylau @obermobber . μ΄ λ°©λ²μΌλ‘λ λ¬Έμ κ° ν΄κ²°λκΈ°λ₯Ό λ°λλλ€!