typescript - Angular 7.x - 无法从自定义库导出类
我无法从自定义库中导出一个类并在应用程序中正确导入。作为类型使用是可行的,但用构造函数使用则不行。
我的库正在工作……我可以使用模块、组件、服务创建的内容。如果我只是添加一个简单导出的类,我在应用中无法正确使用它。
错误在 ./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
}
}
库已正确编译,无错误。在 dist 中
export declare class DemoClass {
text: string;
constructor(text: string);
}
公共_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';
那么它正在工作。但这不是自定义库的正确使用方式。
我希望能够像在库中那样在应用中使用一个类。
答案#1
你必须扩展,但永远不要尝试使用外部库,但应该可以工作 :)
试试这个
export class DemoComponent extends DemoClass implements OnInit {
...
constructor(text: string) {
super(text); // DemoClass constructor params
}
...
}
我也看到你的导入很奇怪。试试这样做
import { DemoClass } from 'mylib/lib/global/module1/testClass';
