我正在开发一个 TypeScript 项目(针对浏览器),我们在其中使用带有 DefinelyTyped 的类型定义的第三方库。在库的类型定义中,其类声明如下:
declare namespace foo {
export class Bar { ... }
export class Baz { ... }
}
Run Code Online (Sandbox Code Playgroud)
Bar然而,库的实际实现将类放置在全局范围内,以便可以仅通过和来引用它们Baz。因此,usingfoo.Bar会编译,但在运行时不起作用。
为了使其工作,我想以某种方式将所有导出foo引入全局命名空间。我找不到任何明显的方法来做到这一点,所以到目前为止我最好的尝试是制作一个环境声明文件说
declare type Bar = foo.Bar;
declare const Bar: typeof foo.Bar;
Run Code Online (Sandbox Code Playgroud)
并对 中的每个导出类重复此操作foo。这允许我实例化该类,将其用作类型,并调用它可能具有的任何静态函数,但为所有导出类型声明两次相同的名称并不理想。实现同样目标的更短方法似乎是
declare class Bar extends foo.Bar {}
Run Code Online (Sandbox Code Playgroud)
但现在我不必要地延长课程,而且意图不明确。
有没有更好的方法来别名/提取foo全局变量的导出类型?
我正在将PHP / Illuminate应用程序移植到ASP.NET Core / EF Core。它的一部分包括一个类似Wordpress的安装过程,该过程要求提供数据库凭据,然后创建必要的表以使应用程序正常运行。本质上,我想像在Illuminate的架构生成器中一样在运行时运行某种迁移。
我找到了Microsoft.EntityFrameworkCore.Migrations命名空间的引用,该引用似乎与我想做的事情有关,但是我似乎找不到任何有关如何实际使用它的文档或最佳实践。我想我可以编写原始SQL查询并执行这些查询,但是如果可能的话,我宁愿使用一个不错的强类型API。
EF Core是否可以做到这一点,并且有人对如何做到这一点有任何建议吗?如果有任何区别,我目前正在使用Pomelo MySQL提供程序。
c# entity-framework database-migration entity-framework-core