none
ES2016, ES2017 und ESNEXT in tsconfig.json führt zu zahllosen Fehlern RRS feed

  • Allgemeine Diskussion

  • Hallo zusammen,

    wenn ich in einem WebForms-Projekt in der tsconfig.json als target ES2016 oder neuer auswähle, erscheinen zahllose Fehler. Wenn man ES2016 wählt, funktioniert beispielsweise console.log() nicht mehr, da console angeblich nicht definiert sei. Bei ESNext werden sogar grundlegende Dinge wie HTMLElement nicht mehr gefunden.

    Die entsprechenden Definitionsdateien habe ich mir hier heruntergeladen, da diese beim Visual Studio 2017 Pro nicht mit installiert wurden.

    Was kann ich hier tun?

    Gruß

    André

    Dienstag, 21. März 2017 17:25

Alle Antworten

  • Hi,

    wo erscheinen welche Fehler? Poste bitte immer die exakten und vollständigen Fehlermeldungen sowie den Code, der der diese Fehler verursacht.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Mittwoch, 22. März 2017 07:26
    Moderator
  • Sehr gerne. Hier zunächst der TSX-Code:

    // A '.tsx' file enables JSX support in the TypeScript compiler, 
    // for more information see the following page on the TypeScript wiki:
    // https://github.com/Microsoft/TypeScript/wiki/JSX
    
    declare var HauptSplitter: ASPxClientSplitter;
    
    interface PivotData {
        monat: Date;
        halle: number;
        produktgruppe: string;
        dekornr: string;
        kundennr: number;
        produziert: number;
        fehler: number;
    }
    
    $(function () {
        let pivot : DevExpress.ui.dxPivotGrid = $('#pivot').dxPivotGrid({
            height: '500px',
            width: '100%',
            dataSource: {
                store: new DevExpress.data.CustomStore({
                    load: function (lo) {
                        let d = $.Deferred();
                        $.getJSON('../api/Fehler/getPivotData?perPiece=true')
                            .done(e => d.resolve(e))
                            .fail(e => d.reject(e));
                        return d.promise();
                    },
                    onLoaded: function (e) {
                        pivot.bindChart('#chart', {
                            
                        });
                    }
                }),
                fields: [
                    { dataField: 'halle', area: 'row', sortBySummaryField: 'produziert', allowSortingBySummary: true, sortOrder: 'desc'  },
                    { dataField: 'produktgruppe', area: 'row', allowSortingBySummary: true, sortOrder: 'desc' },
                    { dataField: 'dekornr', area: 'row', allowSortingBySummary: true, sortOrder: 'desc'  },
                    { dataField: 'monat', area: 'column', dataType: 'date' },
                    { dataField: 'produziert', area: 'data' },
                    { dataField: 'fehler', area: 'data' },
                    { dataField: 'kundennr', area: 'filter' },
                    { selector: (d: PivotData) => { console.log(d); return d.fehler / d.produziert; }, area: 'data', caption:'Quote'}
                ]
            } as DevExpress.data.PivotGridDataSourceOptions,
            allowSorting: true,
            allowFiltering: true,
            fieldPanel: {
                visible: true
            }
        } as DevExpress.ui.dxPivotGridOptions).dxPivotGrid('instance');
    
        let chart: DevExpress.viz.dxChart = $('#chart').dxChart({
            height: '400px',
            width: '100%',
            dataSource: []
        } as DevExpress.viz.charts.dxChartOptions).dxChart('instance');
    
        // Handler zum Anpassen der Diagrammgröße
        HauptSplitter.Init.AddHandler(function (s, e) { chart.render(); });
        HauptSplitter.PaneResizeCompleted.AddHandler(function (s, e) { if (e.pane.index == 1) { chart.render(); } });
    });

    Hier die Konfiguration:

    {
      "compileOnSave": true,
      "compilerOptions": {
        "noImplicitAny": true,
        "noEmitOnError": true,
        "removeComments": true,
        "sourceMap": true,
        "target": "esnext"
      },
      "exclude": [
        "node_modules",
        "wwwroot"
      ]
    }

    Auf Target "es5" oder "es2015" erscheinen keine Fehlermeldungen und das Projekt compiliert normal. Ändert man die Einstellung, so erscheinen 396 Fehler in der Visual-Studio-Fehlerliste. Hier nun mit "es2016"/"esnext":

    http://pastebin.com/WkqYHBMP

    Musste es leider extern verlinken, da nur 60.000 Zeichen zulässig sind.


    • Bearbeitet 0x4152 Mittwoch, 22. März 2017 17:00
    Mittwoch, 22. März 2017 17:00
  • Hi,

    probier mal, folgendes mit anzugeben:

        ...
        "target": "es2017",
        "lib": [
            "es2017"
        ]
    

    ggfs. auch weitere, falls noch mehr Fehler auftreten:

        ...
        "target": "es2017",
        "lib": [
            "es2017",
            "dom",
            ...
        ]
    

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community


    Mittwoch, 22. März 2017 17:49
    Moderator
  • Danke, Stefan. Hat aber leider nicht geholfen! Sowohl nur mit es2017, wie auch mit der Kombination mit dom bringt keine Besserung. Noch eine Idee, was ich machen könnte?

    Das Wirre ist, dass das Syntax Highlighting die Elemente erkennt und wenn ich mit der Maus drüber fahre, bekomme ich auch die Objektdefinition angezeigt. Nur der Kompiler bekommt es offenbar nicht auf die Reihe. Kann es sein, dass es da irgendwie zwei getrennte Speicherorte gibt?

    Montag, 27. März 2017 08:11