Tedious: `erro TS2304: Não é possível encontrar o nome 'StringDecoder'.` com v6.6.1

Criado em 27 nov. 2019  ·  8Comentários  ·  Fonte: tediousjs/tedious

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?

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!
image

Todos 8 comentários

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"
          }

image

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

image

image

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

image

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!
image

Sim, ia escrever isso!
Eu instalei @types/node: 12.12.17 e a compilação do prod funciona bem. Obrigado!!

Esta página foi útil?
0 / 5 - 0 avaliações