Есть ли способ заставить вывод работать с расширенной строкой в ​​условной машинописи?

Обратите внимание на класс «MAIN», в который помещается элемент, например

<div class="container">
     <ul class="select">
         <li> First</li>
         <li>Second</li>
    </ul>
</div>

. В приведенном выше сценарии объект MAIN, который будет наблюдать jQuery, является «контейнером».

Тогда вы в основном будете иметь имена элементов в контейнере, такие как ul, li и select:

$(document).ready(function(e) {
    $('.container').on( 'click',".select", function(e) {
        alert("CLICKED");
    });
 });
0
задан Amin Paks 28 March 2019 в 01:12
поделиться

1 ответ

В updateWithKey, K не появляется в позиции, где он может автоматически выводиться компилятором, поэтому он считается наиболее допустимым типом, то есть string.

Но условные типы имеют специальный синтаксис , чтобы сообщить компилятору, что вы хотите, чтобы фактический тип выводился:

type Key<T extends string> = { key: T };

declare function getKey<T extends string>(key: T): Key<T>;

let someKey = getKey('check');

declare function updateWithKey<T>(key: T): T extends Key<infer K> ? K : never;

let someUpdatedKey = updateWithKey(someKey); // let someUpdatedKey: "check"
0
ответ дан artem 28 March 2019 в 01:12
поделиться
Другие вопросы по тегам:

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