我在脚本中使用以下类型:

interface ExerciseData {
    id : number;
    name : string;
    vocabulary : {
        from : string;
        to : string;
    }[];
}

现在,我想创建一个与属性vocabulary类型相同的变量,try 以下操作:

var vocabs : ExerciseData.vocabulary[];

但这是行不通的.是否有可能以某种方式引用子类型?还是我必须做这样的事?

interface ExerciseData {
    id : number;
    name : string;
    vocabulary : Vocabulary[];
}

interface Vocabulary {
        from : string;
        to : string;
}

var vocabs : Vocabulary[];

谢谢你的提示.

推荐答案

这并不完全是你想要的,但你可以用typof关键字来破解这个问题,但前提是你有一个var,它被声明为你的接口类型,如下所示.请注意,我认为您在上一个代码块中所做的要好得多:)

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

Typescript相关问答推荐

类型ElementTypes不可分配给类型ElementTypes.word'

在Switch陈述中输入保护类

ReturnType此索引方法与点表示法之间的差异

Angular 17 -如何在for循环内创建一些加载?

typescribe不能使用值来索引对象类型,该对象类型满足具有该值的另一个类型'

在将对象从一个对象转换成另一个对象时,可以缩小对象的键吗?

如果请求是流,如何等待所有响应块(Axios)

如何缩小变量访问的对象属性范围?

创建一个根据布尔参数返回类型的异步函数

material 表不渲染任何数据

使某些(嵌套)属性成为可选属性

不推荐使用Marker类-Google map API警告

如何在Angular 12中创建DisplayBlock组件?

Material UI / MUI系统:我如何告诉TypeScript主题是由提供程序传递的?

Cypress页面对象模型模式.扩展Elements属性

如何 bootstrap TS编译器为类型化属性`T`推断正确的类型?

下载量怎么会超过下载量?

可赋值给类型的类型,从不赋值

如何从抽象类的静态方法创建子类的实例?

如何在Vuetify 3中导入TypeScript类型?