Quando compilo meu projeto,
../../node_modules/@types/readable-stream/index.d.ts:138:18 - error TS2304: Cannot find name 'StringDecoder'.
138 decoder: StringDecoder | null;
~~~~~~~~~~~~~
Nó: 10.16.0
Texto datilografado: 3.3.3333
tedioso: 6.6.1
Funciona se eu mudar a versão tediosa para 6.5.0.
Não tenho certeza se isso está relacionado a https://github.com/tediousjs/tedious/issues/1007
Alguém aconselharia?
Oi @anthonylau , você pode fornecer alguns detalhes sobre como você compilou seu projeto ou talvez fornecer um script de reprodução? Eu configurei o projeto tedioso com as versões que você fornece, e o projeto tedioso é construído bem. Além disso, você deseja testar seu projeto com uma versão mais recente do Typescript desde que a 3.3.3333 foi lançada há cerca de 9 meses?
Ei @MichaelSun90 , eu tenho o mesmo problema que @anthonylau estava tendo. Eu também consertei indo para a tediosa v6.5.0.
executar meu script inicial ( "start": "nodemon --exec ts-node -- ./src/index.ts"
) não causa nenhum problema, mas executar uma compilação de prod ( "tsc -p tsconfig.json"
) causou o seguinte erro:
node_modules/@types/readable-stream/index.d.ts:138:18 - erro TS2304: Não é possível encontrar o nome 'StringDecoder'.
138 decodificador: StringDecoder | nulo;
~~~~~1 erro encontrado.
npm ERR! código ELIFECYCLE
npm ERR! erro 2
npm ERR! [email protected] build:prod :tsc -p tsconfig.json
npm ERR! Sair do estado 2
Eu uso em combinação com
sequela 5.15.1
texto datilografado: 3.3.4000
Nó: 10.15.3
Quais informações adicionais você precisa?
informações adicionais:
indo para o index.d.ts, o typescript está fornecendo as seguintes informações do problema:
'StringDecoder' refers to a value, but is being used as a type here. (ts2749)
Tenho dificuldade em entender de onde vem esse problema - com base em https://github.com/DefinitelyTyped/DefinitelyTyped/blob/6a3064cc7408b4e71d0d0feb6f92457d4c22e15c/types/readable-stream/index.d.ts#L132 , não há referência a StringDecoder
mas NodeStringDecoder
.
Você pode verificar o conteúdo do arquivo node_modules/@types/readable-stream/index.d.ts
em seu sistema?
Sim, eu verifiquei e a interface do ReadableState é a seguinte:
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;
}
Esta é a dependência tediosa que instalou:
"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"
}
Portanto, parece que o readable-stream v 2.3.6 foi mesclado com NodeStringDecoder
em vez de StringDecoder
, no entanto, pode não ter sido publicado ainda
Este é provavelmente um problema Definitivamente Typed
Esta é a dependência tediosa que instalou:
Acho que você está olhando para a dependência de fluxo legível errada. O problema está em @Types/readable-dependency, que deve ter o 2.3.5 instalado
Um problema sobre isso já foi levantado https://github.com/DefinitelyTyped/DefinitelyTyped/pull/37869
Aqui está a correção: @anthonylau @obermobber . Espero que isso também resolva seu problema!
Sim, ia escrever isso!
Eu instalei @types/node: 12.12.17 e a compilação do prod funciona bem. Obrigado!!
Comentários muito úteis
Um problema sobre isso já foi levantado https://github.com/DefinitelyTyped/DefinitelyTyped/pull/37869
Aqui está a correção: @anthonylau @obermobber . Espero que isso também resolva seu problema!