0
Debugger listening on port 5858 
c:\workspace\Projects\test\test\Car.js:16 
})(Vehicle); 
^
ReferenceError: Vehicle is not defined 
    at Object.<anonymous> (c:\workspace\test\test\Car.js:16:4) 
    at Module._compile (module.js:460:26) 
    at Object.Module._extensions..js (module.js:478:10) 
    at Module.load (module.js:355:32) 
    at Function.Module._load (module.js:310:12) 
    at Module.runMain [as _onTimeout] (module.js:501:10) 
    at Timer.listOnTimeout (timers.js:119:15) 

Я использую Visual Studio 2013 с машинописным плагином. Я получил эту ошибку, и я попробовал импорт и экспорт, но это не сработало. Как я могу это исправить?typescript ReferenceError

источник:

Car.ts

class Car extends Vehicle { 
    public talk() { console.log ("vehicle"); } 
} 
var rx_car = new Car(""); 
rx_car.say(); 

Vehicle.ts

class Vehicle { 
    private _name: string; 
    constructor(name: string) { this._name = name; } 
    public say (subject = "name is") { console.log(subject + " " + this._name); } 
    get name() { return this._name; } 
    set name(name: string) {this._name = name; } 
} 

скомпилированный файл:

Car.js

var __extends = this.__extends || function (d, b) { 
    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; 
    function __() { this.constructor = d; } 
    __.prototype = b.prototype; 
    d.prototype = new __(); 
}; 
var Car = (function (_super) { 
    __extends(Car, _super); 
    function Car() { 
     _super.apply(this, arguments); 
    } 
    Car.prototype.talk = function() { 
     console.log("vehicle"); 
    }; 
    return Car; 
})(Vehicle); 
var rx_car = new Car(""); 
rx_car.say(); 
//# sourceMappingURL=Car.js.map 

Car.js.map

{"version":3,"file":"Car.js","sourceRoot":"","sources":["Car.ts"],"names":["Car","Car.constructor","Car.talk"],"mappings":";;;;;;AAAA,IAAM,GAAG;IAASA,UAAZA,GAAGA,UAAgBA;IAAzBA,SAAMA,GAAGA;QAASC,8BAAOA;IAEzBA,CAACA;IADQD,kBAAIA,GAAXA;QAAgBE,OAAOA,CAACA,GAAGA,CAAEA,SAASA,CAACA,CAACA;IAACA,CAACA;IAC5CF,UAACA;AAADA,CAACA,AAFD,EAAkB,OAAO,EAExB;AACD,IAAI,MAAM,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;AACzB,MAAM,CAAC,GAAG,EAAE,CAAC"} 

Vehicle.js

var Vehicle = (function() { 
    function Vehicle(name) { 
     this._name = name; 
    } 
    Vehicle.prototype.say = function (subject) { 
     if (subject === void 0) { subject = "name is"; } 
     console.log(subject + " " + this._name); 
    }; 
    Object.defineProperty(Vehicle.prototype, "name", { 
     get: function() { 
      return this._name; 
     }, 
     set: function (name) { 
      this._name = name; 
     }, 
     enumerable: true, 
     configurable: true 
    }); 
    return Vehicle; 
})(); 
//# sourceMappingURL=Vehicle.js.map 

Vehicle.js.map

{"version":3,"file":"Vehicle.js","sourceRoot":"","sources":["Vehicle.ts"],"names":["Vehicle","Vehicle.constructor","Vehicle.say","Vehicle.name"],"mappings":"AAAA,IAAM,OAAO;IAEXA,SAFIA,OAAOA,CAECA,IAAYA;QAAIC,IAAIA,CAACA,KAAKA,GAAGA,IAAIA,CAACA;IAACA,CAACA;IACzCD,qBAAGA,GAAVA,UAAYA,OAAmBA;QAAnBE,uBAAmBA,GAAnBA,mBAAmBA;QAAIA,OAAOA,CAACA,GAAGA,CAACA,OAAOA,GAAGA,GAAGA,GAAGA,IAAIA,CAACA,KAAKA,CAACA,CAACA;IAACA,CAACA;IAC7EF,sBAAIA,yBAAIA;aAARA;YAAaG,MAAMA,CAACA,IAAIA,CAACA,KAAKA,CAACA;QAACA,CAACA;aACjCH,UAASA,IAAYA;YAAGG,IAAIA,CAACA,KAAKA,GAAGA,IAAIA,CAACA;QAACA,CAACA;;;OADXH;IAEnCA,cAACA;AAADA,CAACA,AAND,IAMC"} 
+0

Это работает в Node.js? –

+0

есть. Я использую версию 0.12.7 – alexis

+0

@ RyanCavanaugh спасибо за то, что прояснили – basarat

ответ

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