2015-03-26 6 views
0

В настоящее время мой код выглядит следующим образом:машинописи определяет внешний класс

module Nexus { 

    export class Scrapper { 

     private summonerName: string; 

     private apiKey: string = ''; 

     private summonerStatsUrl = ''; 

     constructor(name: string) { 

      this.summonerName = name; 
     } 

     getSeasonRank(): string { 

      return 'aa'; 
     } 

     getRankedStats(): string { 

      return 'aa'; 
     } 

     getSummonerStats(callback: Function) { 

      var summonerStats = request(this.summonerStatsUrl + this.apiKey, function (error, body, response) { 

       callback(response); 
      }); 
     } 
    } 
} 

И app.ts:

///<reference path="./Nexus.ts"/> 

var colors = require('colors'), 
    request = require('request'), 
    fs = require('fs'), 
    readline = require('readline'), 
    rl = readline.createInterface({ 

     input: process.stdin, 
     output: process.stdout 
    }); 

rl.question('Insert summoner name: \r\n >> ', function (answer) { 

    var scrapper = new Nexus.Scrapper(answer); 

    scrapper.getSummonerStats(function (result) { 

     console.log(result); 
    }); 
}); 

Когда я достигаю новый Nexus.Scrapper(), я получаю эту ошибку:

Nexus не определен

Хотя это должно быть, так как я его включаю? Модуль называется Nexus, и я экспортирую класс Scrapper. (Файл называется Nexus.ts.)

+0

Рекомендуется, чтобы имя модуля начиналось с строчной буквы. А что такое "/// "? Является ли Nexus классом? Имя файла машинописного текста должно совпадать с именем класса. И ваш app.ts должен находиться внутри того же модуля, то есть nexus. Тогда он будет работать – mukund

ответ

2

Марка убедитесь, что ваш модуль выглядит следующим образом:

module Nexus { 
    export class Scrapper { 
     private summonerName: string; 
     private apiKey: string = ''; 
     private summonerStatsUrl = ''; 

     constructor(name: string) { 

      this.summonerName = name; 
     } 

     getSeasonRank(): string { 

      return 'aa'; 
     } 

     getRankedStats(): string { 
      return 'aa'; 
     } 

     getSummonerStats(callback: Function) { 
      var summonerStats = request(this.summonerStatsUrl + this.apiKey, function (error, body, response) { 
       callback(response); 
      }); 
     } 
    } 
} 

export = Nexus; 

Затем, вместо использования /// <reference />:

import Nexus = require('Nexus'); 
1

Кроме того, необходимо экспортировать модуль

export module Nexus { 
    ... 
} 

тогда в вашем app.ts вы можете назвать это нравится:

import Nexus = require('./Nexus.ts'); 
+0

«Невозможно найти имя Nexus» на app.ts –

+0

Вам также потребуется потребовать его на app.ts, если я не ошибаюсь. –

+0

да jesus вы правы, thx – Safari

Смежные вопросы