Шаблон строки для ключей объекта

Хорошо, на основании комментария, я подозреваю , ответ отрицательный, вам нужны более общие типы более высокого порядка. Вам нужно что-то вроде:

// Not real syntax!
interface IFunctor, TValue>
    where TFunctor : IFunctor, TValue>
{
    TFunctor Project(Func func);
}

. Проблема заключается в том, чтобы выразить мысль о том, что реализация интерфейса должна также быть родовым определенным образом и разрешить общее отношение, которое будет использоваться в остальной части интерфейса. Боюсь, это не часть дженериков .NET.

До сих пор Джо Даффи писал о , желая высших порядков - к сожалению, я не могу сказать, актуальна ли эта статья, поскольку я не могу до нее добраться в данный момент. (Его блог-сервер несколько временно, но контент велик:)


Это не совсем понятно, но, возможно, вы просто говорите о LINQ to Objects , в основном. Например:

var kids = people.Where(x => x.Age < 18) // Filtering
                 .Select(x => x.Name)    // Projection
                 .ToList();

Вы могли бы написать интерфейс более общего назначения, например

public interface IFunctor
{
    IFunctor Foo(Func selector);
}

... но нет такого интерфейса, фактически реализованного с помощью List и т. Д. LINQ для объектов работает через методы расширения.

5
задан user2473015 28 February 2019 в 10:42
поделиться

1 ответ

Правило eslint prefer-template предполагает, что вы не будете объединять строки, а будете использовать только строки шаблона.

В вашем случае вам нужно заменить

' ' + classes[color]

на

` ${classes[color]}`

IIRC, eslint имеет флаг «auto-fix» для исправления ошибок такого рода. ]

Кроме того, плагин eslint для кода Visual Studio имеет встроенную функцию автоматического исправления.

0
ответ дан Seblor 28 February 2019 в 10:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: