我创建了一个打印我所有模型的打字稿文件:
// models.ts
export { TestModel, ITestModel } from './generatedModels/test.model';
export { Test2Model, ITest2Model } from './generatedModels/test2.model';
所有模型文件都导入关系的model.ts(在以下示例中为
//test.model.ts
import * as Models from '../models';
export interface ITestModel {
testString: string;
testRelation: Models.ITest2Model;
}
export class TestModel implements ITestModel {
public testString: string;
public testRelation: Models.ITest2Model;
}
通过这种方式,我得到以下构建警告:WARNING in Circular dependency detected
但主要的问题是,我得到了运行时错误:
test2.model.ts:7 Uncaught TypeError: Object prototype may only be an Object or null: undefined
at setPrototypeOf (<anonymous>)
at __extends (test2.model.ts:7)
at eval (test2.model.ts:12)
at eval (test2.model.ts:30)
我可以通过在models.ts上导入所需的相关模型来解决问题:在此示例中,将import * as Models from '../models';
替换为import { Test1Type } from '../models';
。但我需要一种方法来访问所有模型,因为模型文件(test.model.ts,test2.model.ts,...)将使用Typewriter(VS Extension)自动生成。
受影响的项目是角项目(角度cli 1.5.0,角度5.0.1,打字稿2.4.2)
在另一个没有使用angular cli生成的项目中,不使用webpack,这种方法可行。那么问题可能是webpack吗?
有人知道,我怎么能避免运行时错误?
谢谢!