我在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[];

非常感谢您的提示。

最佳答案

并非完全符合您的要求,但是您可以使用typof关键字解决此问题,但前提是您拥有一个声明为接口(interface)类型的var,如下所示。请注意,我认为您在上一个代码块中所做的工作要好得多:)

interface ExerciseData {
    id : number;
    name : string;
    vocabulary : {
        from : string;
        to : string;
    }[];
}
var x: ExerciseData;
var vocabs : typeof x.vocabulary[];

09-18 22:31