Как определить объект, который также является функцией (объект из интерфейса) в одном операторе без утверждения типа?

#{} используется для строковой интерполяции: http://sass-lang.com/documentation/file.SASS_REFERENCE.html#interpolation_

Существует одно исключение из этого, хотя: при использовании интерполяции # {} цитируемые строки некорректны. Это облегчает использование, например, имена селекторов в mixins. Например.

blockquote>

Таким образом, этот метод иногда используется, чтобы разрешить использование значений sass в селекторах. Например ::

$gutter: 10;

.grid#{$gutter} {
    background: red;
}

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

#{h1, h2, h3, h4, h5}
{
    color: #000;
}

Мое лучшее предположение заключается в том, что sass-переменная будет добавлена ​​позже к этому селектору, или селектор будет полностью заменен с переменной.

0
задан modiX 16 January 2019 в 15:57
поделиться

1 ответ

Насколько я понимаю, нет способа сделать это без утверждений типа. Документы для гибридных типов также используют его таким образом, например

interface Counter {
    (start: number): string;
    interval: number;
    reset(): void;
}

function getCounter(): Counter {
    let counter = <Counter>function (start: number) { };
    counter.interval = 123;
    counter.reset = function () { };
    return counter;
}

let c = getCounter();
c(10);
c.reset();
c.interval = 5.0;
0
ответ дан Murat Karagöz 16 January 2019 в 15:57
поделиться
Другие вопросы по тегам:

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