草庐IT

ES导入导出

全部标签

javascript - 你如何填充 Javascript ES6 `new.target` ?

一些ES6特性真的很容易polyfill:if(!Array.prototype.find){Array.prototype.find=...}你会如何polyfillnew.target?在不受支持的浏览器中使用时会触发语法错误。try/catch不起作用,因为它是一个语法错误。我不必使用new.target,我主要只是好奇。 最佳答案 正如Jaromanda评论的那样,您不能polyfill新语法,但您现在可以轻松解决一些new.target用例看看new.targetdocs你会看到一些可以用es5轻松编写的示例使用new.t

javascript - 使用模块加载和类继承将 ES6 转换为 ES5

我正在尝试找到将我的ECMAScript6代码转换为ES5的最佳/有效解决方案。我想使用模块加载器并利用继承。到目前为止,我最接近的是使用带有es2015预设和transform-es2015-modules-systemjs插件的Babel6。这是我的.babelrc文件:{"presets":["es2015"],"plugins":["transform-es2015-modules-systemjs"]}我的文件结构如下:-dist(transpiledfilesinthesamestructureasthesrcfolder)-src-classes-Point.js-Col

javascript - ES6 相当于 Node.js 需要函数调用

这个问题在这里已经有了答案:PassoptionstoES6moduleimports(9个回答)关闭7年前。以下require函数调用的最短ES6等价物是什么?module.exports=function(app){...};require('./routes')(app);换句话说,在ES6模块中有一个等价的单行代码吗?

javascript - ES6 异步生成器结果

ES6有generatorsthatreturniterators:function*range(n){for(leti=0;i有一个关于返回Promises的异步函数的提议:asyncfunctionf(x){lety=awaitg(x);returny*y;}f(2).then(y=>{console.log(y);});那么如果我将两者结合起来会发生什么,就像这样:asyncfunction*ag(n){for(leti=0;i它返回什么?是Promise>?Iterator>?还有别的吗?我该如何食用它?我想应该有一个相应的for循环,什么将异步迭代其结果,例如:for(awa

javascript - 不能使用绝对路径导入?

请耐心等待,我不确定这是纯粹的ReactNative问题,还是一般的ES6问题。但我注意到我无法做到这一点:import{navBarRouteMapper}from'/src/helpers';我收到一条错误消息,提示无法解析模块。我必须改为这样做:import{navBarRouteMapper}from'../../../src/helpers';随着应用的复杂性增加,跟踪文件夹深度可能会变得有点难以管理。为什么我不能使用绝对路径?编辑:我看到有人建议添加babel,但我不想污染ReactNative的系统。显然已经在进行ES6的转译。我希望有一个特定于ReactNative生态

javascript - ES6 : import many files

我有一个导入大量AMD模块并在每个模块上调用初始化方法的脚本:define(['underscore','./mod0',...,'./modN'],function(_){_.each(_.toArray(arguments).slice(1),function(m){init(m);});});我需要切换到ES6导入语法,我想弄清楚是否可以从列表中导入模块,其方式类似于我的AMD代码。我想避免像这样的精神错乱:importmod0from'./mod0';...importmodNfrom'./modN';init(mod0);...init(modN);关于如何实现这一点有什么建

javascript - 在 ES6 中什么是新规范, "block-level function declaration"是什么意思?

我正在尝试学习es6兼容性表Here.在bindings部分它说“block级函数声明?”。除了官方spec,我找不到任何博客或文档在那个词的组合上。问题:“block级函数声明”指的是什么? 最佳答案 示例kangax正在测试:alert(function(){'usestrict';functionf(){return1;}{functionf(){return2;}}returnf()===1;}());这意味着函数“提升”的行为方式与let相同(与var相比)。在ES5中,大括号是“装饰”,除非出现在for、if、try等几

javascript - ES6 命名空间导入 : behavior of "this"

从命名空间导入调用的导入函数中,this的值是多少?(根据ECMA规范)//module.jsexportfunctionfun(){returnthis;}//main.jsimport*asmodulefrom"./module.js";letx=module.fun();//What'sthevalueofxhere?我的猜测是:它是module对象,但在规范中还没有找到明确的答案。正常行为是否适用于此,或者在ES6模块中是否有一些特殊的namespace导入? 最佳答案 没有,这里没有特殊行为。Modulenamespace

javascript - 导入值与其导出值断开连接是否仍然是只读的?

给定以下模块结构://moduleA:exportleta=1;//namedexportexportfunctioninc(){a++;}//namedexport//moduleB:letb=1;exportdefaultb;//defaultexport(equivalentto`exportdefault1`)exportfunctioninc(){b++;}//namedexport//moduleC:letc={};exportdefaultc;//defaultexport//moduleE:importa,{incasincA}from"./A";importb,{in

javascript - VS Code 能否在文件重命名/移动时自动更新 JavaScript 和 TypeScript 导入路径?

是否有用于vscode的模块可以更新文件路径?例如如果我有:import'./someDir/somelib'然后我重命名或移动somelib,它会自动更新所有被引用的文件中的文件路径吗? 最佳答案 此功能是在VSCode1.24(trackingissue)中为JavaScript和TypeScript添加的当您移动或重命名文件时,系统现在会提示您查看是否要更新导入:这由javascript.updateImportsOnFileMove.enabled和typescript.updateImportsOnFileMove.ena