TypeScript: ссылочный подтип определения типа (интерфейс)
Я использую следующий тип в моем TypScript:
interface ExerciseData {
id : number;
name : string;
vocabulary : {
from : string;
to : string;
}[];
}
теперь я хотел бы создать переменную того же типа, что и атрибут vocabulary
, попытке следующее:
var vocabs : ExerciseData.vocabulary[];
но это не работает. Можно ли как-то ссылаться на подтип? Или мне придется сделать что-то подобное?
interface ExerciseData {
id : number;
name : string;
vocabulary : Vocabulary[];
}
interface Vocabulary {
from : string;
to : string;
}
var vocabs : Vocabulary[];
большое спасибо за подсказки.
2 ответов
не совсем то, что вы хотите, но вы можете взломать это с помощью ключевого слова typof, но только если у вас есть var, который объявлен как ваш тип интерфейса, как показано ниже. Обратите внимание, что я думаю, что то, что вы сделали в своем последнем codeblock, намного лучше :)
interface ExerciseData {
id : number;
name : string;
vocabulary : {
from : string;
to : string;
}[];
}
var x: ExerciseData;
var vocabs : typeof x.vocabulary[];
поскольку TypeScript 2.1 вы можете сделать следующее, используя типы поиска:
let vocabs: ExerciseData['vocabulary'][];