我无法从自定义库中导出类并正确导入应用中。按类型使用有效,但与构造函数一起使用无效。
我的库正在运行...我可以使用从中创建模块,组件和服务。如果仅添加一个简单的导出类,则无法在应用程序中正确使用。
./src/app/demo/demo.component.ts中的错误 找不到模块:错误:无法解析“ mylib / lib / global / module1 / testClass.class”
如果我在组件中使用带有构造函数的类,则会发生这种情况...
project / mylib / src / lib / global / module1 / testClass.class.ts
export class DemoClass {
text: string;
constructor(text:string) {
this.text = text
}
}
库已正确编译,没有错误。在远处
export declare class DemoClass {
text: string;
constructor(text: string);
}
public_api.ts
export * from './lib/global/module1/testClass.class';
在./src/app/demo/demo.component.ts
中import { DemoClass } from 'mylib/lib/global/module1/testClass.class';
@Component({
selector: 'app-demo',
templateUrl: './demo.component.html',
styleUrls: ['./demo.component.scss']
})
export class DemoComponent implements OnInit {
// This will work
demo: DemoClass = { text: "lorem ipsum" }
// This will not work and provide error 'Module not found: Error: Can't resolve '
demo2: DemoClass = new DemoClass('lorem ipsum')
constructor() { }
ngOnInit() {
}
}
修改 可能相关的是,如果我像这样导入我的课程
{ testClass } from projects/mylib/src/lib/global/module1/testClass.class';
然后它正在工作。但这不是自定义库的正确用法。
我希望能够像在lib中一样在应用程序中使用类。
答案 0 :(得分:1)
您必须扩展,但不要尝试使用外部库,但应该可以:)
尝试一下
export class DemoComponent extends DemoClass implements OnInit {
...
constructor(text: string) {
super(text); // DemoClass constructor params
}
...
}
我也看到您的导入很奇怪。像这样尝试
import { DemoClass } from 'mylib/lib/global/module1/testClass';