2014-07-25 64 views
12

bu var:

/// <reference path="../../../../scripts/typings/angularjs/angular.d.ts" /> 

angular.module('question') 
    .controller('QuestionHomeController', [ 
     '$http', 
     'enumService', 
     '$q', 
     '$rootScope', 
     '$scope', 
     '$state', 
     questionHomeController]); 

function questionHomeController(
    $http, 
    enumService, 
    $q, 
    $rootScope, 
    $scope, 
    $state 
    ) { 

Birinin $ http ve $ q için typescript yazarak ekleyebilirsiniz nasıl açıklayacaksınız? AngularJS tipi tanım dosyalarını zaten başvuruyor ancak yazımlar hala görünmüyor

cevap

22

Projenize dahil edilen yazımlarınız varsa, bunları yalnızca değişkenlerin türü olarak kullanmanız gerekir, böylece özellikleri/Bu tür işlevler intellisense üzerinde görünür.

angular.module('question') 
    .controller('QuestionHomeController', [ 
     '$http', 
     'enumService', 
     '$q', 
     '$rootScope', 
     '$scope', 
     '$state', 
     questionHomeController]); 

function questionHomeController(
    $http : ng.IHttpService, 
    enumService, 
    $q: ng.IQService, 
    $rootScope : ng.IRootScopeService, 
    $scope : ng.IScope, 
    $state : ng.ui.IStateService 
    ) { 

Benzer ayrıca servis örneğin for enumService için arayüz türünü belirtebilirsiniz. Ayrıca mevcut türleri de genişletebilirsiniz. Örneğin sizin kapsamı kendi işlevi vardır ve ardından size ViewModel olarak kapsamını kullanın: -

interface IquestionHomeViewModel extends ng.IScope { 
     func1(arg:string):void; 
     ... 

} 

ve olarak kullanmak olacaktır: -

$scope : IquestionHomeViewModel , 
+0

Çok teşekkürler. Bana ng.ui.IStateService'yi nereden bulabileceğimi söyler misin? Her şey bunun dışında benim için çalışıyor. – Alan2

+1

@Alan oh $ durumu nedir? Kullandığınız açısal UI yönlendirici devlet hizmeti olduğunu düşündüm? Eğer öyleyse, $ state ve diğer herhangi bir ui yönlendirici varlıkları için “angular-ui-router.d.ts” yazarak dosyayı indirmeniz gerekir. – PSL

+0

Doğru ve teşekkürler. – Alan2

İlgili konular