gpt4 book ai didi

angularjs - 服务类继承和文件顺序

转载 作者:搜寻专家 更新时间:2023-10-30 20:44:05 24 4
gpt4 key购买 nike

我在文件夹 app/resources/ 中有服务(TypeScript 中的类)app/resources/GeneralResource.ts 和其他服务。我想从 GeneralResources 继承我的所有资源。

所有按字母顺序排列在 GeneralResource.ts 文件之后的文件(类)都工作正常。但是所有在 GeneralResource.ts 之前的文件(类)都有执行时错误。

这是一个示例类:

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);
}

// ...

这个类编译正常:

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 = {}));

但是当我打开文件时,浏览器出现错误:

Uncaught TypeError: Cannot read property 'prototype' of undefined

我只是想强调,在 GeneralResource 之后声明的所有类都没有这个问题。

我认为移除继承并将 GeneralResource 注入(inject)到我的所有服务中会更好。但我想知道是否可以修复继承解决方案?

最佳答案

您没有详细说明您的设置是什么样的。但是我在使用(TypeScript)内部模块时遇到了这个问题。你只需要确保你不会忘记添加引用评论:

///<reference path="relative/path/to/GeneralResource.ts" />

在您的 app/resources/serviceName.ts 文件中。注释的目的是确保文件(或其内容)在最终 app.js 文件中的顺序正确(如果您使用 --outFile 标志).

关于angularjs - 服务类继承和文件顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34577986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com