在ECMAScript 6中是否支持静态类型?ECMAScript 7怎么样?
鉴于一系列承诺,在ES7中获得结果的惯用方法是什么?
这就是我想要做的事情:
async function getImports() {
let imports = [System.import('./package1.js'), System.import('./package2.js')];
let promises = await* imports;
let results = [];
await promises.forEach(val => val.then(data => results.push(data))); //seems hacky
console.log(results); // array of 2 resolved imports
}
Run Code Online (Sandbox Code Playgroud)
结果是正确的,但我仍然在做a forEach和a then将已解决的承诺转化为结果.这对我来说似乎不对.有更干净的方式吗?
我正在尝试执行以下操作,但它返回null:
import { Button as styledButton } from 'component-library'
Run Code Online (Sandbox Code Playgroud)
然后尝试将其渲染为:
import React, { PropTypes } from "react";
import cx from 'classNames';
import { Button as styledButton } from 'component-library';
export default class Button extends React.Component {
constructor(props){
super(props)
}
render() {
return (
<styledButton {...this.props}></styledButton>
)
}
}
Run Code Online (Sandbox Code Playgroud)
原因是,我需要Button从库中导入组件,并且还导出具有相同名称但保持导入组件功能的包装器组件.如果我import { Button } from component library当然离开它,我会得到一个多重声明错误.
有任何想法吗?
一直在研究ES6,JSPM和angular2一周,我找到了这个repo ES6-loader
如果我们查看底部脚本中的index.html,您会看到
System.import('reflect-metadata')
.then(function() {
return System.import('app/index');
})
.catch(console.log.bind(console));
Run Code Online (Sandbox Code Playgroud)
这是使用JSPM的systemjs polyfill来获取ES6 import.
问题: 在这种情况下,反射元数据到底是做什么的?npm reflect-meta我阅读的文档越多,我就越不了解它的作用吗?
我听说VS 2015支持新的js语法但是当我在这个IDE中打开一个使用aurelia.js编写的项目时,intellisense会抱怨很多很多东西,例如.
export class UpperValueConverter {
toView(value){
return value && value.toUpperCase();
}
}
Run Code Online (Sandbox Code Playgroud)
我安装了WebEssentials 2015.似乎仍然没有任何工作...可能一个重要的信息是我目前的VS安装是一个新的,所以我没有弄乱任何设置.
const vegetableColors = {corn: 'yellow', peas: 'green'};
const {*} = vegetableColors;
console.log(corn);// yellow
console.log(peas);// green
Run Code Online (Sandbox Code Playgroud)
我似乎无法找到或弄清楚如何做到这一点,但我真的以为我以前见过它!:P
注:我使用的是巴贝尔与stage设置为0;
背景:我正试图在JSX中干燥而不是参考this.state或this.props在任何地方.如果数据发生变化,也不必继续为destructure添加属性.
如何在nodejs中使用ES7(ECMAScript 2016)?我怎样才能在生产中使用它?
在哪个版本的节点中,我不需要使用任何模块来做到这一点?
任何帮助表示赞赏.
我查了一下,发现这是关于在数组中的较大字符串中查找子字符串.Array.Prototype.includes
if (t.title.includes(searchString))
Run Code Online (Sandbox Code Playgroud)
我t是一个$.each迭代通过更大的对象数组的一部分(每个对象都有一些信息,包括字符串,日期等).searchString是用户在框中输入的内容.所有这些都是我在页面上的列表的简单搜索功能.
这在Chrome中运行得很好.但Firefox和IE正在出现错误
TypeError: currentTicket.title.includes is not a function
Run Code Online (Sandbox Code Playgroud)
所以我要么提出一个警告标志,我的应用程序只适用于Chrome或我手工查找功能?奇怪的是来自MDN的doc页面我发布了只有Firefox支持的状态array.includes,奇怪的是它只运行它的Chrome.
我坚持这一点,我无法进步 - 我想解决方案很简单,但我无法弄清楚.我正在尝试在reducer中添加条目,因此in in中的数据看起来像这样:
state = {
entryId: {
entryName: ["something", "something2", "something3" /* and so on... */]
}
};
Run Code Online (Sandbox Code Playgroud)
到目前为止,这是我得到的最接近的,但是,它不是添加新的唯一条目,而是替换已经存储的条目.此外,我需要能够将此项添加到空状态,其中entryId,entryName尚不存在以避免错误:
switch(type) {
case ADD_ENTRY:
return {
...state,
[entryId]: {
...state[entryId],
[entryName]: {
[uniqueEntry]: true
}
}
};
}
Run Code Online (Sandbox Code Playgroud)
知道我做错了什么吗?
我有一系列的值,如:
const arr = [1,2,3];
Run Code Online (Sandbox Code Playgroud)
有什么方法可以使用解构来创建以下输出?如果没有,我在ES6(或更高版本)中最简单的方法是什么?
const obj = {
one: 1,
two: 2,
three: 3
};
Run Code Online (Sandbox Code Playgroud)
我试过这个,但我猜它不起作用,因为这是计算键的语法:
const arr = [1,2,3];
const obj = {
[one, two, three] = arr
};
Run Code Online (Sandbox Code Playgroud) ecmascript-7 ×10
ecmascript-6 ×7
javascript ×6
reactjs ×2
arrays ×1
aurelia ×1
ecmascript-5 ×1
import ×1
jspm ×1
node.js ×1
npm ×1
react-redux ×1
redux ×1
systemjs ×1