2014-04-13 21 views
5

Sto cercando di importare una classe esterna (scritta in Typescript) in un'altra classe Typescript usando requireJS. Ho usato questa sintassi, ma non capisco perché sto ricevendo un errore di sintassi con questa dichiarazione di importazione:L'importazione del typescript non riesce a risolvere il modulo esterno

enter image description here

Ho anche provato ad utilizzare questo, invece:

import t = module("Controller/TestController"); 

E' m ottenendo anche lo stesso errore.

L'istruzione import/require sopra riportata è appmod.ts. Questa è la mia struttura di file:

+Root 
    +Scripts 
    +app 
     -main.ts 
     -appmod.ts 
     +Controller 
     -TestController.ts 

ho guardato attraverso la documentazione, e questa linea sembra perfettamente bene a me. Il file TestController.ts esiste nel percorso e le classi sono precedute dalla parola chiave export.

Cosa c'è di sbagliato in questa linea?

Ecco come il mio TestController.ts aspetto: definizione AngularJS

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

module testApp.Controller { 
    export interface ITestScope extends ng.IScope { 
     helloString:string; 
    } 

    export class TestController { 

     public static $inject = [ 
      "$scope" 
     ]; 


     constructor(private $scope: ITestScope) { 
      this.$scope.helloString = "Hello!"; 
     } 
    } 

} 

ho usato di DefinitelyTyped nei miei TestController.js.

risposta

3

L'istruzione di esportazione deve essere al livello root nel file. Rimuovere il modulo ridondante http://m.youtube.com/watch?v=KDrWLMUY0R0&hd=1

I.e. Elimina 'module testApp.Controller'

+0

Grazie! Rimozione del modulo testApp.Controller fa funzionare la cosa. Ma sono ancora curioso, perché non posso usare namespace per i miei controller e servizi angularjs con RequireJS? – Carven

+0

Ogni file è un modulo nel mondo AMD/CommonJS – basarat

+0

È ancora possibile utilizzarli se si precede il modulo con esportazione. Cioè 'export module' ma è sprecato chars – basarat

Problemi correlati