小编Cor*_*lix的帖子

有什么方法可以在typescript中声明一个嵌套类结构吗?

我对定义现有框架(openlayers.d.ts)很感兴趣,但无法弄清楚如何表达OpenLayers.Layer既是OpenLayers.Layer.Markers的类和命名空间这一事实.我相信这使得Markers成为Layer的嵌套类.

用法:

l = new OpenLayers.Layer(...); // this is a base class, never do this
m = new OpenLayers.Layer.Markers(...);
Run Code Online (Sandbox Code Playgroud)

你会如何在打字稿中声明Layer和Markers类?

typescript

50
推荐指数
5
解决办法
4万
查看次数

打字稿多重继承解决方法?

我正在尝试发现一种将多个接口组合成一个抽象类的模式.目前我可以通过"implements"组合多个接口,但接口不能声明构造函数.当我必须引入一个构造函数时,我被迫使用一个抽象类.当我使用抽象类时,我必须重新声明整个复合接口!当然我错过了什么?

interface ILayerInfo {
    a: string;
}

interface ILayerStatic {
    b(): string;
}

class Layer implements ILayerInfo, ILayerStatic {
    constructor(info: ILayerInfo);
    a: string;
    b(): string;
}
Run Code Online (Sandbox Code Playgroud)

答案:使用'new':

interface Layer extends ILayerInfo, ILayerStatic {
    new(info: ILayerInfo);
}

// usage: new Layer({ a: "" });
Run Code Online (Sandbox Code Playgroud)

abstract-class multiple-inheritance typescript

12
推荐指数
1
解决办法
2万
查看次数

打字稿"专门"重载

是否可以在不引入与实现完全匹配的签名的情况下定义此专用过载?

on(eventName: string, cb: Function);
on(eventName: "view", cb: (args: {
    foo: {
    }
}) => void);
on(eventName: string, cb: Function) {
}
Run Code Online (Sandbox Code Playgroud)

当我删除它时,我收到此错误:

专用过载签名不能分配给任何非专业签名.

typescript

10
推荐指数
1
解决办法
1511
查看次数

可以在另一个窗口的上下文中调用Javascript方法吗?

假设你有一个全局函数alert2:

function alert2(msg) {
    window.alert(msg);
}
Run Code Online (Sandbox Code Playgroud)

并且您还可以引用第二个窗口对象:

childWindow = window.open(myUrl);
Run Code Online (Sandbox Code Playgroud)

现在你想在childWindow的上下文中从窗口调用alert2:

alert2.call(childWindow, "does not work without this.window");
Run Code Online (Sandbox Code Playgroud)

对话框出现在主窗口中,因为alert2内部的"窗口"绑定到定义此方法的窗口(父窗口).

一种解决方案是修改alert2:

function alert2(msg) {
    this.alert(msg);
}
Run Code Online (Sandbox Code Playgroud)

没有这个修改可以做到这一点吗?像这样的东西:

alert2.call(childWindow.parent, "no such thing as window.parent");
Run Code Online (Sandbox Code Playgroud)

这是一个人为的例子; childWindow.alert("")不是我想要的!

我的源代码可以在jsfiddle上看到和修改,从http://jsfiddle.net/hJ7uw/2/开始

javascript internet-explorer

9
推荐指数
1
解决办法
7646
查看次数

Dojo垃圾收集/资源解放技术?

我最近创建了我认为是基于页面的应用程序,它现在被嵌入作为控件使用."控制"需要多次卸载/重新加载.这会导致订阅和未被销毁的dijit控件出现问题.我已经找到了必要的断开连接,注册表.detroy逻辑,但它很乏味.是否有任何最佳实践可以使控件集合可以破坏?

下面的示例代码显示了可以使用基本逻辑完成的任务:http: //pastebin.com/bUUBUMP9

我问的是一个类似于AppDomain的框架是否可以清除在该上下文中创建的任何内容.类似于将控件嵌入IFRAME ......但不是.

dojo

5
推荐指数
1
解决办法
560
查看次数

如何在使用AMD时定义和使用打字稿中的枚举?

以下tsc命令不会创建可用的foo.d.ts:

TSC -declaration -m amd foo.ts 
Run Code Online (Sandbox Code Playgroud)

foo.ts:

export enum foo {
    bar
}
Run Code Online (Sandbox Code Playgroud)

foo.d.ts:

export declare enum foo {
    bar,
}
Run Code Online (Sandbox Code Playgroud)

///<reference path="./foo.d.ts"/> 
Run Code Online (Sandbox Code Playgroud)

在foo.d.ts中删除"export"之后才能工作.是否有另一种方法在第二个文件中声明foo类型的变量?在我看来引用foo.ts应该有效(它没有):

///<reference path="./foo.ts"/> 
Run Code Online (Sandbox Code Playgroud)

我错过了关键字吗?

amd typescript

5
推荐指数
1
解决办法
4321
查看次数

如何将 .js 文件添加到 Svelte REPL?

Svelte REPL中,可以添加新的 .svelte 文件,但不能添加新的 .js 文件,但现有示例确实有 .js 文件:

https://svelte.dev/examples#衍生商店

最终用户是否可以这样做?

svelte

5
推荐指数
1
解决办法
396
查看次数

如何使用自签名 OpenSSL 证书在 HTTPS 上测试 PWA?

我可以使用 localhost 通过 http 测试 serviceworkers,但我想在移动浏览器上测试。因为它是一个单独的设备,所以我不能使用 localhost,所以我使用了 PC 的名称。所以现在我需要使用 https,这会导致我的 Service Worker 出现 SSL 相关错误:

Uncaught (in promise) DOMException: Failed to register a ServiceWorker for scope (' https://xxx:5500/app/ ') with script (' https://xxx:5500/app/service_worker.js '): An SSL获取脚本时发生证书错误。

我已正确配置 liveServer 以使用自签名证书,并且已成功启用“edge://flags/#unsafely-treat-insecure-origin-as-secure”,但这还不够。

我还担心如何在移动设备上测试 PWA,因为我认为我无法在移动设备上使用“不安全”功能。我认为这是一个常见的情况,但我没有找到任何答案。

android openssl self-signed progressive-web-apps

3
推荐指数
1
解决办法
3364
查看次数

模块名称冲突时如何从typescript.d.ts文件访问接口?

如何从esri.dijit中访问i1?

module dijit {
    interface i1 {};
}

module esri {
    module dijit {
        interface i2 {}
        interface i3 extends dijit.i2, dijit.i1 {}
    }
}
Run Code Online (Sandbox Code Playgroud)

请参阅游乐场示例

dojo amd typescript

2
推荐指数
1
解决办法
150
查看次数

如何使div的内容不包装?

我在以下标记的codepen.io上创建了一个示例:

<div class="outer">
  <div class="inner">Inner 1</div>
  <div class="inner">Inner 2</div>
  <div class="inner">Inner 3</div>
</div>
Run Code Online (Sandbox Code Playgroud)

和css:

.outer {
  border: 1pt solid black;
  width:320pt;
  height: 220pt;
  overflow-x: scroll;
  overflow-y: hidden;
  flex-wrap:nowrap;
}

.inner {
  border: 1pt solid blue;
  display:inline-block;
  width: 200pt;
  height: 200pt;
  background: silver;  
}
Run Code Online (Sandbox Code Playgroud)

但我的目标是创建一种旋转木马,其中外部div的内容不会包裹.这是如何完成的?

html css

0
推荐指数
1
解决办法
105
查看次数