2016-04-06 7 views
0

В моем проекте angular2 я использую grunt для автоматизации компиляции моих файлов машинописных файлов.Машинопись с угловой2 и ошибкой grunt TS2304: Не удается найти имя

Все преуспевает мои файлы компиляция, но я всегда получают ошибку

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'. 

Я пытался Definetlytyped, но я не получаю успех.

Я не знаю почему?

Пожалуйста, помогите мне исправить это ниже принять мои main.ts and auditLogs.ts файлы посмотрите и дайте мне знать, где я делаю неправильно

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 файл

(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

Думаю, вам нужно будет инициализировать vairable. 'var app = giddh.webApp' вместо того, чтобы просто использовать' app' – Subash

ответ

1

Следующие ошибки неверны на нескольких уровнях

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

Файл является модулем. Вам не нужно использовать iffee. И вам не нужно использовать window. Подробнее: https://basarat.gitbooks.io/typescript/content/docs/project/modules.html

Также вы не можете использовать http по всему миру. Вы должны позволить угловому впрыскивать это для вашего.

Также ng только для информацию о типе и на самом деле не существует во время выполнения.

+1

, так как я могу его исправить. –