Tedious: `Fehler TS2304: Name 'StringDecoder' kann nicht gefunden werden.` mit v6.6.1

Erstellt am 27. Nov. 2019  ·  8Kommentare  ·  Quelle: tediousjs/tedious

Wenn ich mein Projekt kompiliere,

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

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

Knoten: 10.16.0
Typoskript: 3.3.3333
langweilig: 6.6.1

Es funktioniert, wenn ich mühsam die Version auf 6.5.0 ändere.
Nicht sicher, ob dies mit https://github.com/tediousjs/tedious/issues/1007 zusammenhängt

Würde jemand raten?

Hilfreichster Kommentar

Ein diesbezügliches Problem wurde bereits angesprochen https://github.com/DefinitelyTyped/DefinitelyTyped/pull/37869

Hier ist die Lösung: @anthonylau @obermobber . Hoffentlich behebt dies auch Ihr Problem!
image

Alle 8 Kommentare

Hallo @anthonylau , kannst du ein paar Details dazu geben, wie du dein Projekt kompiliert hast, oder vielleicht ein Reproduktionsskript bereitstellen? Ich habe das langwierige Projekt mit den von Ihnen bereitgestellten Versionen eingerichtet, und das langwierige Projekt lässt sich gut erstellen. Möchten Sie Ihr Projekt auch mit einer neueren Version von Typescript ausprobieren, da 3.3.3333 vor etwa 9 Monaten veröffentlicht wurde?

Hey @MichaelSun90 , ich habe das gleiche Problem wie @anthonylau . Ich habe es auch behoben, indem ich mich für mühsame v6.5.0 entschieden habe.

Das Ausführen meines Startskripts ( "start": "nodemon --exec ts-node -- ./src/index.ts" ) verursacht keine Probleme, aber das Ausführen eines Prod-Builds ( "tsc -p tsconfig.json" ) verursachte den folgenden Fehler:

node_modules/@types/readable-stream/index.d.ts:138:18 – Fehler TS2304: Kann den Namen „StringDecoder“ nicht finden.

138-Decoder: StringDecoder | Null;
~ ~ ~~~

1 Fehler gefunden.

npm ERR! Code ELIFECYCLE
npm ERR! fehler 2
npm ERR! [email protected] build:prod : tsc -p tsconfig.json
npm ERR! Ausgangszustand 2

Ich benutze es in Kombination mit
Fortsetzung 5.15.1
Typoskript: 3.3.4000
Knoten: 10.15.3

Welche zusätzlichen Informationen benötigen Sie?

Zusatzinfo:
Beim Aufrufen der index.d.ts gibt Typoskript die folgenden Probleminformationen aus:
'StringDecoder' refers to a value, but is being used as a type here. (ts2749)

Ich habe Probleme zu verstehen, woher dieses Problem kommt - basierend auf https://github.com/DefinitelyTyped/DefinitelyTyped/blob/6a3064cc7408b4e71d0d0feb6f92457d4c22e15c/types/readable-stream/index.d.ts#L132 gibt es keinen Hinweis darauf StringDecoder aber NodeStringDecoder .

Können Sie den Inhalt der Datei node_modules/@types/readable-stream/index.d.ts auf Ihrem System überprüfen?

Ja, ich habe es überprüft, und die ReadableState-Schnittstelle sieht wie folgt aus:

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

Dies ist die mühsame Abhängigkeit, die es installiert hat:

"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

Es sieht also so aus, als ob readable-stream v 2.3.6 mit NodeStringDecoder statt mit StringDecoder zusammengeführt wurde, es könnte jedoch sein, dass es noch nicht veröffentlicht wurde

image

image

Dies ist wahrscheinlich ein DefinitelyTyped-Problem

Dies ist die mühsame Abhängigkeit, die es installiert hat:

Ich denke, Sie betrachten die falsche Readable-Stream-Abhängigkeit. Das Problem liegt in @Types/readable-dependency, wo 2.3.5 installiert sein sollte

image

Ein diesbezügliches Problem wurde bereits angesprochen https://github.com/DefinitelyTyped/DefinitelyTyped/pull/37869

Hier ist die Lösung: @anthonylau @obermobber . Hoffentlich behebt dies auch Ihr Problem!
image

Ja, das wollte ich gerade schreiben!
Ich habe @types/node: 12.12.17 installiert und der Prod-Build funktioniert einwandfrei. Danke!!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen