I have service (class in TypeScript) app/resources/GeneralResource.ts
and other services in the folder app/resources/
. I want to inherit all my resources from GeneralResources
.
All files (classes) that are going after GeneralResource.ts
file alphabetically are working fine. But all files (classes) that are going before GeneralResource.ts
have a execution-time error.
Here is an example class:
export class DefectReasonResource extends GeneralResource implements IDefectReasonResource {
static $inject = ['$q', '$http', 'baseUrl'];
constructor(public $q:ng.IQService, public $http:ng.IHttpService, public baseUrl:string) {
super($q, $http);
}
// ...
This class compile fine:
var app;
(function (app) {
var common;
(function (common) {
var DefectReasonResource = (function (_super) {
__extends(DefectReasonResource, _super);
function DefectReasonResource($q, $http, baseUrl) {
_super.call(this, $q, $http);
this.$q = $q;
this.$http = $http;
this.baseUrl = baseUrl;
}
DefectReasonResource.$inject = ['$q', '$http', 'baseUrl'];
return DefectReasonResource;
})(common.GeneralResource);
common.DefectReasonResource = DefectReasonResource;
angular.module('myApp').service('defectReasonResource', DefectReasonResource);
})(common = app.common || (app.common = {}));
})(app || (app = {}));
But when I open the file I have an error in the browser:
Uncaught TypeError: Cannot read property 'prototype' of undefined
I just want to underline that I don't have this problem with all classes that are declared after GeneralResource
.
I think it will be better to remove inheritance and inject GeneralResource
to all my services. But I am wondering it is possible to fix inheritance solution ?
You did not elaborate how your setup looks like. But I encountered this when I used (TypeScript) internal modules. You just have to make sure that you don't forget to add reference comment:
///<reference path="relative/path/to/GeneralResource.ts" />
in your app/resources/serviceName.ts
files. The purpose of the comment is to make sure that the order of files (or their contents) is correct in the final app.js
file (if you use --outFile
flag).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With