正确使用Typescript.d.ts文件
我试图弄清楚TypeScript.d.ts文件到底是如何工作的。我很难理解以下两者之间似乎存在的差异:正确使用Typescript.d.ts文件,typescript,visual-studio-2015,typescript-typings,Typescript,Visual Studio 2015,Typescript Typings,我试图弄清楚TypeScript.d.ts文件到底是如何工作的。我很难理解以下两者之间似乎存在的差异: 编译程序 Intellisense(使用ReSharper的VS2015) 运行时/模块加载器(Systemjs) 我使用的是oidc客户端js库,它提供了一个oidc-client.d.ts文件,看起来有点像下面的: 声明var UserManager:Oidc.UserManager; ... 更多的东西 声明模块“oidc客户端”{ 出口=Oidc; } 声明命名空间Oidc{ 接口客户
声明var UserManager:Oidc.UserManager;
... 更多的东西
声明模块“oidc客户端”{
出口=Oidc;
}
声明命名空间Oidc{
接口客户端{
…更多的东西
}
接口OidcManager扩展OidcClient{
…更多的东西
}
…更多的东西
}
我希望在我自己的TypeScript类中使用UserManager类,从而执行以下操作:
//
导出类安全服务{
私有管理器:Oidc.UserManager;
构造函数(){
this.manager=新的Oidc.UserManager({
…在这里设置
});
}
}
此时会发生以下情况(
指向正确的文件):
新的Oidc.UserManager()调用上没有Oidc命名空间
new-Oidc.UserManager
更改为new-UserManager
:
//
导出类安全服务{
私有管理器:Oidc.UserManager;
构造函数(){
this.manager=新用户管理器({
…在这里设置
});
}
}
这具有以下效果:
新建oidc.UserManager()
declare var Oidc
:
//
声明变量Oidc;
导出类安全服务{
私有管理器:Oidc.UserManager;
构造函数(){
this.manager=新的Oidc.UserManager({
…在这里设置
});
}
}
这将:
any
类型,这显然不是最优的声明var UserManager:Oidc.UserManager;
…更多的东西
声明模块“oidc客户端”{
出口=Oidc;
}
声明命名空间Oidc{
类OIDClient{
…更多的东西
}
类OidcManager扩展OidcClient{
…更多的东西
}
…更多的东西
}
但这需要对定义文件进行更改。查看其他定义文件,它们通常使用接口而不是类,因此我想知道这是否是定义文件的问题,或者这只是我对TypeScript中如何工作缺乏正确的理解
任何帮助都将不胜感激。我认为这只是定义文件的问题 定义文件说应该有一个
var UserManager:Oidc.UserManager
可用。这就是为什么编译器在使用new UserManager()
时不会抱怨,因为定义文件说它存在
问题是它实际上不存在(在JavaScript中),因此出现运行时错误
此文件可能不正确,因为它已过时。我找到了一个文件,您可能想尝试一下。您是对的。我可能应该更新我的问题。我是提供更新定义文件的人:)谢谢though@Robba我应该注意到:P无论如何,很乐意帮忙!