我有一个angular2包库(称之为A),我使用npm install从另一个不同的angular2项目(称为B)导入.
来自A的所有服务,组件似乎都可以在B项目上运行,它们可以很好地导入注入和使用.
但是,只有简单的类定义才行.即我有一个类定义如下
export class JustAClass{
public Title:string;
constructor(title:string){
this.Title = title;
}
getTitleLong():string{
return 'Long '+this.Title;
}
}
并在index.d.ts我导出它.
从'./components/test/just'导出{JustAClass};
在项目BI中可以看到just.d.ts文件如下:
export declare class JustAClass {
Title: string;
constructor(title: string);
getTitleLong(): any;
}
我使用webswtorm,当我在项目B的文件中使用这个类时,它给了我intellisence并知道指向我文件定义:
import { JustAClass } from 'my-project-lib-A';
@Component({
templateUrl: 'orders.html'
})
export class SomePage {
constructor() {
var d = new JustAClass('aaaa'); // this is undefiend in run time
console.log(d.getTitleLong());
}
我得到它'JustAClass'未定义,webpack抛出一个错误:
WEBPACK_IMPORTED_MODULE_2_my-project-lib- A.JustAClass不是构造函数
如果重要的话,我将使用ionic2作为项目B.