我通过显式设置属性来为我的对象设置全局命名空间window.
window.MyNamespace = window.MyNamespace || {};
Run Code Online (Sandbox Code Playgroud)
TypeScript强调MyNamespace并抱怨:
属性'MyNamespace'在'window'类型的值上不存在任何"
我可以通过声明MyNamespace为环境变量并删除window显式来使代码工作,但我不想这样做.
declare var MyNamespace: any;
MyNamespace = MyNamespace || {};
Run Code Online (Sandbox Code Playgroud)
我怎样才能window留在那里让TypeScript开心?
作为旁注,我发现TypeScript抱怨特别有趣,因为它告诉我这种window类型any绝对可以包含任何东西.
如何增加"内置"类型之一?例如阵列?
在JS中,我会做类似的事情
Array.prototype.shuffle = function () { ... };
Run Code Online (Sandbox Code Playgroud)
什么是TypeScript的等价物?
我认为这已经在某个地方得到解决,在某些时候,只是为了我的生活,我不记得了,所以这里是我的问题:
我正在做一些将加载到现有应用程序的javascript工作.这个应用程序有可用的功能,除了我想要实际使用的一些功能之外我几乎不知道它的任何功能.所以我要说的是,我知道window.srslyUsefulFunction可供我使用,而且我并不关心将其移植到打字稿定义中.
所以问题是如何在我自己的打字稿文件中使用window.srslyUsefulFunction而不为其创建定义?
例:
class MyClass {
public MyMethod (id : string) : void {
// do something
var result = window.srslyUsefulFunction(id);
// do something (with the result)
}
}
Run Code Online (Sandbox Code Playgroud) 类似问题有很多线索,但据我所知,这个问题是独一无二的.
我在我的应用程序中使用jQuery Address插件,并希望在TypeScript文件中使用它.遗憾的是,该库没有可用的DefinitelyTyped脚本.当我尝试使用jQuery.address时,我得到:
The property 'address' does not exist on value of type 'jQueryStatic'
Run Code Online (Sandbox Code Playgroud)
根据这个帖子,我试图在address里面定义jquery.d.ts:
interface JQueryStatic {
address(options): any;
...
}
Run Code Online (Sandbox Code Playgroud)
我认为这似乎适用于$ .address(); 但不适用于任何地址的方法.我也尝试过这个帖子创建自己的.d.ts文件,但仍然没有运气.我尝试declare在.d.ts文件中使用.没运气.
我需要使用的唯一方法是parameter方法......
$.address.parameter('param', 1);
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我得到:
The property 'parameter' does not exist on value of type 'address'
Run Code Online (Sandbox Code Playgroud)
关于如何解决这个问题的任何想法?
编辑:我在Visual Studio C#.net环境中工作,如果有帮助的话.