2016-04-06 2 views
0

In meinem angular2 Projekt benutze ich grunt, um meine Typoskript-Dateien zu automatisieren.Typescript mit angular2 und grunt Fehler TS2304: Name nicht gefunden

Alles tut gut meine Dateien kompilieren, aber sind immer Fehler immer

app/webapp/ng2/audit_logs/auditLogs.ts(2,3): error TS2304: Cannot find name 'app'. 
app/webapp/ng2/audit_logs/auditLogs.ts(3,3): error TS2304: Cannot find name 'http'. 
app/webapp/ng2/audit_logs/auditLogs.ts(3,10): error TS2304: Cannot find name 'ng'. 
app/webapp/ng2/audit_logs/auditLogs.ts(6,3): error TS2304: Cannot find name 'app'. 
app/webapp/ng2/audit_logs/auditLogs.ts(7,5): error TS2304: Cannot find name 'ng'. 
app/webapp/ng2/main.ts(16,24): error TS2304: Cannot find name 'upgradeAdapter'. 

Ich habe Definetlytyped versucht, bin aber nicht der Erfolg zu bekommen.

Ich weiß nicht warum?

Bitte helfen Sie mir dies unten zu beheben ist meine main.ts and auditLogs.ts Dateien einen Blick und lassen Sie mich wissen, wo falsch tue

Main.ts

/// <reference path="../../../node_modules/angular2/typings/browser.d.ts" /> 


var window: any = { 
    giddh: undefined 
}; 

import {UpgradeAdapter} from 'angular2/upgrade'; 

var adapter = new UpgradeAdapter(); 
var app = window.giddh.webApp; 

adapter.bootstrap(document.body, ['giddhWebApp']); 

// downgrade ng2 components to ng1 directives 
app.directive('myApp', upgradeAdapter.downgradeNg2Component(app.AppComponent)); 

auditLogs.ts Datei Datei

(function(giddh: any) { 
    app = giddh.webApp 
    http = ng.http 


    app.AppComponent = 
    ng.core.Component({ 
     selector: 'my-app', 
     templateUrl: '' 
    }).Class({ 
     constructor: function(http: any) { 
     this.test = new test(1020); 
     } 
    }); 

    class test { 
    val: string; 
    constructor(data: any){ 
     this.val = data; 
    } 
    } 

})(window.giddh || (window.giddh = {})); 

var window: any = { 
    giddh: undefined 
} 
declare var require: any; 
import {Component} from 'angular2/core'; 

@Component({ 
    selector: 'my-app', 
    template: '/public/webapp/ng2/audit_logs/audit-logs.html' 
}) 

export class AppComponent { 
} 
+0

Ich denke, dass Sie die Variable initialisieren müssen. 'var app = giddh.webApp' anstatt nur' app' – Subash

Antwort

1

Das Folgende ist falsch auf einer Reihe von Ebenen

(function(giddh: any) { 
    app = giddh.webApp 
    http = ng.http 


    app.AppComponent = 
    ng.core.Component({ 
     selector: 'my-app', 
     templateUrl: '' 
    }).Class({ 
     constructor: function(http: any) { 
     this.test = new test(1020); 
     } 
    }); 

    class test { 
    val: string; 
    constructor(data: any){ 
     this.val = data; 
    } 
    } 

})(window.giddh || (window.giddh = {})); 

var window: any = { 
    giddh: undefined 
} 

Ihre Datei ist ein Modul. Sie brauchen kein IFEFE. Und Sie müssen window nicht verwenden. Mehr: https://basarat.gitbooks.io/typescript/content/docs/project/modules.html

Auch Sie können http global nicht verwenden. Du musst es eckig für dich spritzen lassen.

Auch ng ist nur für Typ Informationen und existiert nicht tatsächlich zur Laufzeit.

+1

zu verwenden, also wie kann ich es reparieren? –