小编nic*_*oum的帖子

如何直接修改JsonObject/JsonArray的值?

一旦我将JSON字符串解析为GSON提供的JsonObject类,(假设我不希望将其解析为任何有意义的数据对象,但严格地想要使用JsonObject),我如何能够修改a的字段/值关键直接?

我没有看到可以帮助我的API.

https://static.javadoc.io/com.google.code.gson/gson/2.6.2/com/google/gson/JsonObject.html

java json gson

28
推荐指数
3
解决办法
9万
查看次数

在JavaScript VSCode项目中添加自定义类型文件

问题

我正在使用VSCode开发JavaScript项目.我正在使用UMD设计模式,而vscode intellisense无法识别来自另一个文件的模块的导出.我在一个名为的文件中添加了所有声明globals.d.ts.不幸的是我找不到globals.d.ts从JavaScript文件加载声明的方法.

示例模块声明

export namespace ModuleName {
    export interface Item {
        toString(): string;
        property: string;
        name: string;
    }
}
Run Code Online (Sandbox Code Playgroud)

示例JavaScript文件

(function (global, factory) {
    "use strict";
    if (typeof ModuleName === "undefined" && typeof require === "function") global.ModuleName = require("./mymodule.js");
    if (typeof exports !== "undefined" && typeof module !== "undefined") factory(exports);
    else factory(global.OtherModule = global.OtherModule || {});
})(this, (function (exports) {
    "use strict";

    function myMethod() {

    }

    exports.myMethod = myMethod;
    return exports;
}));
Run Code Online (Sandbox Code Playgroud)

我尝试了什么 …

javascript visual-studio-code typescript-typings .d.ts

26
推荐指数
3
解决办法
2813
查看次数

ES5的代理替代

是否可以不使用Proxy和来监听属性更改setInterval

对于常见对象,您可以使用下面的函数,但该函数适用于所有现有属性,但不适用于包装后可能添加的任何属性。

function wrap(obj) {
  var target = {};
  Object.keys(obj).forEach(function(key) {
    target[key] = obj[key];
    Object.defineProperty(obj, key, {
      get: function() {
        console.log("Get");
        return target[key];
      },
      set: function(newValue) {
        console.log("Set");
        target[key] = newValue;
      }
    });
  });
}

var obj = {
  a: 2,
  b: 3
};
wrap(obj);

obj.a; // Get
obj.a = 2; // Set
obj.b; // Get
obj.b = 2; // Set
obj.c = 2; // Nothing
obj.c; // Nothing
Run Code Online (Sandbox Code Playgroud)

如果对象是数组,则还可以侦听该length属性,getset在更改后重置所有和函数。这显然不是很有效,因为每当添加或删除元素时,它都会更改每个元素的属性。 …

javascript object ecmascript-5 es5-compatiblity

14
推荐指数
1
解决办法
261
查看次数

HTML Label doesn't trigger the respective input if the mouse gets moved while clicking in Firefox

In the following example, when you click on the label, the input changes state.

document.querySelector("label").addEventListener("click", function() {
  console.log("clicked label");
});
Run Code Online (Sandbox Code Playgroud)
label {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
Run Code Online (Sandbox Code Playgroud)
<input type="checkbox" id="1">
<label for="1">Label</label>
Run Code Online (Sandbox Code Playgroud)

In Chrome, when you move the cursor between the mousedown and mouseup events the input still gets triggered, whereas in Firefox the checkbox doesn't change state.

Is there a way to fix this? (without using JavaScript event listeners)

Firefox version: 69.0.3 (64-bit)

Full set …

html javascript css label

13
推荐指数
1
解决办法
332
查看次数

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

在vscode JavaScript中设置全局声明

我正在开发一个JavaScript编译器,除其他功能外,它们还将在构建时替换某些函数和变量。

例如以下文件(./src/my-module.js):

defineModule("MyModule", function(exports) {
  return exports;
});
Run Code Online (Sandbox Code Playgroud)

将被复制并转换为(./build/my-module.js):

(function(global, factory) {
  "use strict";
  if (typeof exports !== "undefined" && typeof module !== "undefined") module.exports.MyModule = factory(exports.MyModule || {});
  else factory(global.MyModule = {});
})(this, function(exports) {
  return exports;
});
Run Code Online (Sandbox Code Playgroud)

其中一些功能也可能返回结果。在这种情况下,我希望能够在不使用的情况下声明参数的类型和函数的结果require.d.tsVSCode 是否可以有全局定义?

到目前为止,我所做的就是将函数添加到的全局变量中,eslint以免出错。

javascript visual-studio-code typescript-typings

11
推荐指数
2
解决办法
449
查看次数

在JavaScript的类型文件中声明接口

项目信息

我正在开发一个利用.d.ts文件的JavaScript项目。这是我先前提出的问题的后续问题,因此您可以在此处查看有关该项目的更多信息。

问题

尽管我通常可以从类型文件中提取函数,但是我不能提取为空或仅由接口组成的接口或名称空间。我已经通过const为每个接口创建一个实现并@typeof ConstantImplementation在注释中使用来临时解决了此问题。请参见下面的示例:

// Typings File
export namespace test {
    export interface ITest {
        foo: string;
        bar: number;
    }
    export const Test: ITest;
}
Run Code Online (Sandbox Code Playgroud)
// JS File
if (undefined) var {Test: ITest} = require("globals.d.ts").test; 
// Above line shows `unused var error`

/* @type {typeof ITest} */
var x = {};
x.foo = "hello";
x.bar = 3;
// if I do `x.` intellisense should suggest `foo` and `bar` 
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更好的方法来解决该问题,最好是一种不会抛出错误(使用eslint ignore …

javascript intellisense interface visual-studio-code .d.ts

8
推荐指数
2
解决办法
420
查看次数

Chrome 扩展程序“接收端不存在”。错误

我正在开发 Chrome 扩展程序,但最近我注意到我收到了以下错误(指向 的第一行popup.html):

未经检查的 runtime.lastError: 无法建立连接。接收端不存在。

我在这里找到了一个类似的问题。但是那里的错误是由background我没有在清单上声明的属性引起的。

chrome.extension.onMessage.addListenercontents.js脚本上使用来侦听事件并chrome.tabs.sendMessagepopup.js脚本上使用来发送事件。大多数情况下一切正常,但有时我会收到上述错误并且没有任何请求执行任何操作。

manifest.json格式如下:

{
    "manifest_version": 2,
    "name": "APP_NAME",
    "description": "APP_DESCRIPTION",
    "version": "APP_VERSION",
    "browser_action": {
        "default_icon": "icon.png",
        "default_popup": "popup.html"
    },
    "permissions": [
        "activeTab",
        "storage",
        "clipboardRead",
        "clipboardWrite"
    ],
    "content_scripts": [
        {
            "matches": [
                "<all_urls>"
            ],
            "js": [
                "content.js"
            ],
            "css": [
                "content.css"
            ]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

消息侦听器示例:

{
    "manifest_version": 2,
    "name": "APP_NAME",
    "description": "APP_DESCRIPTION",
    "version": "APP_VERSION",
    "browser_action": {
        "default_icon": …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome-extension

8
推荐指数
1
解决办法
7380
查看次数

为什么不能重新分配函数表达式的名称?

为什么以下代码段会引发错误?

"use strict";
(function a() {
  console.log(typeof a); // function
  console.log(a = 0); // error
})();
Run Code Online (Sandbox Code Playgroud)

为什么此代码段不引发错误?

"use strict";
(function() {
  function a() {
    console.log(a = 0); // 0
  }
  return a;
})()();
Run Code Online (Sandbox Code Playgroud)

为什么立即返回该函数会引发错误?

"use strict";
(function() {
  return function a() {
    console.log(a = 0); // error
  };
})()();
Run Code Online (Sandbox Code Playgroud)

函数表达式是唯一发生这种情况的情况吗?为什么不能重新分配他们?

javascript function

8
推荐指数
1
解决办法
70
查看次数

普通接口类和只有抽象方法的抽象类之间是否存在任何差异?

我只是好奇他们是否有任何不同的待遇.

例如,如果我们有:

界面:

public interface Test {
    public void method();
}
Run Code Online (Sandbox Code Playgroud)

而抽象类:

public abstract class Test {
    public abstract void method();
}
Run Code Online (Sandbox Code Playgroud)

JVM会以不同的方式处理这些类吗?这两个中的哪一个在存储期间占用了更多的磁盘空间,哪一个将耗尽最多的运行时内存,哪一个执行更多操作(性能更好).

这个问题不是关于何时使用接口或抽象类.

java inheritance jvm interface abstract

6
推荐指数
2
解决办法
924
查看次数