我想在lib的全局命名空间中的现有Typescript类型中添加一个方法,然后从lib中导出该方法以供其他项目使用。这可能吗?
这就是我所拥有的:
Promise.ts
Promise.prototype.catchExtension = function<T>(this : Promise<T>): Promise<T> {
return Promise.prototype.catch.apply(this, [() => { /*do stuff*/ }]);
}
Promise.d.ts
declare global {
interface Promise<T> {
catchExtension(): Promise<T>;
}
}
export { }
如何在链接到我的书架的另一个应用程序中使用它?我无法使用import { .... } from '@mylib'
,因为它是在没有名称的情况下导出的:export { }
答案 0 :(得分:0)
尝试仅使用
import '@mylib'
它只会在与您要导入的模块不同的范围内“运行”文件,但这应该没问题,因为您正在修改全局范围。
答案 1 :(得分:0)
解决了一段时间后,我找到了解决方案。我会在这里发布它,以防其他人使用。
通过将声明和定义都放在.ts文件中,然后将文件(在任何地方..!)导入lib中,我的其他项目便能够尽快使用扩展方法它会从库中导入任何内容。
最终代码如下:
在lib项目中:
Promise.ts
BalanceOfPoints
lib.ts
Promise.prototype.catchExtension = function<T>(this : Promise<T>): Promise<T> {
return Promise.prototype.catch.apply(this, [() => { /*do stuff*/ }]);
}
declare global {
interface Promise<T> {
catchExtension(): Promise<T>;
}
}
export { }
在主应用中:
import './Promise'; // this can go in any file in the lib...
export { } from './Promise';
// The rest of the exports
export { Example } from './Example';