标签: es5-compatiblity

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
查看次数

将 => () => 转换为 ES5

由于依赖于执行脚本的系统,我正在将一些脚本从 ES6 转换为 ES5。我遇到了这个特定命令的问题:

transition.selectAll('path.hidden-arc')
   .attrTween('d', d => () => middleArcLine(d));
Run Code Online (Sandbox Code Playgroud)

我不确定他们试图用 '=> () =>' 语法完成什么,也不确定如何将其转换为 ES5 标准函数。任何帮助是极大的赞赏。

javascript es5-compatiblity

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

当针对 es5 时,如何将 Promise 与 TypeScript 结合使用?

Promise.all<any, any>(ajaxRequests).then(()=> {
    console.log("done");
});
Run Code Online (Sandbox Code Playgroud)

上面的代码给出了以下编译器错误:

TS2585: 'Promise' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
Run Code Online (Sandbox Code Playgroud)

我不熟悉这个编译器lib选项是什么以及如果我要更改它会产生什么影响。


我正在尝试针对较旧的浏览器,并且我认为需要支持es5。我认为这可以通过转译/填充来完成?我的打字稿配置是:

{
    "compilerOptions": {
        "sourceMap": true,
        "target": "es5",
        "declaration": true,
        "removeComments": false,
        "module" : "commonjs",
        "moduleResolution": "node",
        "resolveJsonModule": true,
    },
    "include": [
        "src/*"
    ],

    "exclude": [
        "node_modules",
        "**/*.spec.ts"
    ]
}
Run Code Online (Sandbox Code Playgroud)

promise typescript ecmascript-6 es5-compatiblity

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