问题
给定的
- global scripts
- **alpha.ts** contains a class named alpha
- **beta.ts** contains a class named beta
- **gamma.ts** contains a class named gamma
export default gamma.ts中在class gamma {}之前添加gamma.ts
gamma导入全局命名空间(即窗口对象),以便现有的全局和模块脚本能够访问它。我试过的
我试过很多关于global.d.ts的东西
例如:
import gammaAlias from "../scripts/gamma";
export as namespace NS_Global;
declare global {
var qqq: {n:string};
namespace ZZZ {
export var gamma: gammaAlias;
}
var gamma: gammaAlias;
}但是没有一个能起作用
也就是说,TypeScript告诉我以下几点之一
Cannot use 'new' with an expression whose type lacks a call or construct signature.github
我有一个github回购机构来调查这些问题。https://github.com/penguin020/expose-typescript-modules-globally ConvertToModulesPOC_original是工作的“先”的情况。 ConvertToModulesPOC是将gamma .ts转换为模块并在全局公开的失败尝试。
PS
问题仍然是,如何将模块公开到全局命名空间?
任何使用github中的例子的答案都将被特别感谢!
发布于 2020-02-28 18:50:40
这对我有用。我只希望不用重命名界面。
declare global {
interface IMyClass extends MyClass { }
}
class MyClass {
}或
declare global {
type IMyClass = MyClass;
}
class MyClass {
}https://stackoverflow.com/questions/59000222
复制相似问题