Typcript - Получить типы дочернего интерфейса [duplicate]

Еще один подход к возврату значения из асинхронной функции - передать объект, который сохранит результат от асинхронной функции.

Вот пример того же:

var async = require("async");

// This wires up result back to the caller
var result = {};
var asyncTasks = [];
asyncTasks.push(function(_callback){
    // some asynchronous operation
    $.ajax({
        url: '...',
        success: function(response) {
            result.response = response;
            _callback();
        }
    });
});

async.parallel(asyncTasks, function(){
    // result is available after performing asynchronous operation
    console.log(result)
    console.log('Done');
});

Я использую объект result для хранения значения во время асинхронной операции. Это позволяет получить результат даже после асинхронного задания.

Я использую этот подход много. Мне было бы интересно узнать, насколько хорошо этот подход работает, когда задействован результат обратно через последовательные модули.

7
задан Mathias Bader 10 January 2015 в 12:03
поделиться

2 ответа

Не совсем то, что вы хотите, но вы можете взломать это с помощью ключевого слова typof, но только если у вас есть var, который объявлен как ваш тип интерфейса, как показано ниже. Обратите внимание, что я думаю, что то, что вы сделали в последнем кодебло, намного лучше:)

interface ExerciseData {
    id : number;
    name : string;
    vocabulary : {
        from : string;
        to : string;
    }[];
}
var x: ExerciseData;
var vocabs : typeof x.vocabulary[];
2
ответ дан Dick van den Brink 24 August 2018 в 04:21
поделиться

Начиная с TypeScript 2.1 вы можете сделать следующее с помощью типов поиска :

let vocabs: ExerciseData['vocabulary'][];
9
ответ дан Duncan Luk 24 August 2018 в 04:21
поделиться
Другие вопросы по тегам:

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