Алекс сделал замечательную точку зрения на удобочитаемость. Эквивалентно, функция также является интерфейсом, достаточным для определения возвращаемого типа (типов), и вы также получаете значимые имена переменных.
delegate void OpDelegate(int op);
Task<bool> GetDataTaskAsync(OpDelegate callback)
{
bool canGetData = true;
if (canGetData) callback(5);
return Task.FromResult(canGetData);
}
Абоненты предоставляют лямбду (или названную функцию), а intellisense помогает при копировании имя переменной из делегата.
int myOp;
bool result = await GetDataTaskAsync(op => myOp = op);
Этот конкретный подход похож на метод «Try», где myOp
установлен, если результатом метода является true
. В противном случае вам все равно myOp
.
es20**-presets
устарели, поэтому перейдите на @babel/preset-env.
. Установите
npm install --save-dev @babel/preset-env
. Затем добавьте пресет в ваш .babelrc
{
presets: ["@babel/preset-env"]
}
установить
npm install --save babel-plugin-transform-object-rest-spread
npm install --save babel-preset-env
.babelrc
{
"presets":[
"env","es2015", "react"
],
"plugins": [
"react-hot-loader/babel", "transform-object-rest-spread"
]
}
package.json
[112 ]