Tedious: `error TS2304: Impossible de trouver le nom 'StringDecoder'.` avec v6.6.1

Créé le 27 nov. 2019  ·  8Commentaires  ·  Source: tediousjs/tedious

Lorsque je compile mon projet,

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

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

Nœud : 10.16.0
Tapuscrit : 3.3.3333
fastidieux : 6.6.1

Cela fonctionne si je change la version fastidieuse en 6.5.0.
Je ne sais pas si cela est lié à https://github.com/tediousjs/tedious/issues/1007

Est-ce que quelqu'un conseillerait?

Commentaire le plus utile

Un problème à ce sujet a déjà été soulevé https://github.com/DefinitelyTyped/DefinitelyTyped/pull/37869

Voici la solution : @anthonylau @obermobber . J'espère que cela résout également votre problème !
image

Tous les 8 commentaires

Salut @anthonylau , pouvez-vous fournir quelques détails sur la façon dont vous avez compilé votre projet ou peut-être fournir un script de reproduction ? J'ai mis en place le projet fastidieux avec les versions que vous fournissez, et le projet fastidieux se construit bien. Voulez-vous également essayer votre projet avec une version plus récente de Typescript depuis la sortie de la 3.3.3333 il y a environ 9 mois ?

Salut @MichaelSun90 , j'ai le même problème que @anthonylau avait. Je l'ai également corrigé en optant pour la v6.5.0 fastidieuse.

l'exécution de mon script de démarrage ( "start": "nodemon --exec ts-node -- ./src/index.ts" ) ne pose aucun problème, mais l'exécution d'un prod build ( "tsc -p tsconfig.json" ) a provoqué l'erreur suivante :

node_modules/@types/readable-stream/index.d.ts:138:18 - erreur TS2304 : Impossible de trouver le nom 'StringDecoder'.

138 décodeur : StringDecoder | nul;
~ ~ ~~~

1 erreur trouvée.

npm ERR ! code ELIFECYCLE
npm ERR ! erreur no 2
npm ERR ! [email protected] build:prod : tsc -p tsconfig.json
npm ERR ! Statut de sortie 2

Je l'utilise en combinaison avec
séquelle 5.15.1
tapuscrit : 3.3.4000
Nœud : 10.15.3

De quelles informations supplémentaires avez-vous besoin ?

infos supplémentaires :
en entrant dans index.d.ts, le tapuscrit donne les informations suivantes sur le problème :
'StringDecoder' refers to a value, but is being used as a type here. (ts2749)

J'ai du mal à comprendre d'où vient ce problème - basé sur https://github.com/DefinitelyTyped/DefinitelyTyped/blob/6a3064cc7408b4e71d0d0feb6f92457d4c22e15c/types/readable-stream/index.d.ts#L132 , il n'y a aucune référence à StringDecoder mais NodeStringDecoder .

Pouvez-vous vérifier le contenu du fichier node_modules/@types/readable-stream/index.d.ts sur votre système ?

Oui, j'ai vérifié, et l'interface ReadableState ressemble à ceci :

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

Voici la dépendance fastidieuse qu'il a installée :

"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

Il semble donc que readable-stream v 2.3.6 ait été fusionné avec NodeStringDecoder au lieu de StringDecoder , cependant, il se peut qu'il n'ait pas encore été publié

image

image

Il s'agit probablement d'un problème DefinitelyTyped

Voici la dépendance fastidieuse qu'il a installée :

Je pense que vous regardez la mauvaise dépendance de flux lisible. Le problème réside dans @Types/readable-dependency, qui devrait avoir 2.3.5 installé

image

Un problème à ce sujet a déjà été soulevé https://github.com/DefinitelyTyped/DefinitelyTyped/pull/37869

Voici la solution : @anthonylau @obermobber . J'espère que cela résout également votre problème !
image

Ouais, j'allais juste écrire ça !
J'ai installé @types/node: 12.12.17 et la construction de prod fonctionne bien. Merci!!

Cette page vous a été utile?
0 / 5 - 0 notes