首页 > 解决方案 > 打字稿我可以在数组中重新定义 T在界面中

问题描述

我有一个如下所示的接口文件。

我想使用该接口重新定义 Student 类型。

export interface School{
    name: string;
    student: {
        student_id: number;
        student_name: string;
    }[];
}

type Student = ... (student_id: number, student_name)

所以,我尝试了这个:

type Student = Pick<School, "student">["student"]
==>
#Student = {
#   student_id: number;
#   student_name: string;
#}[]

但它是一个数组而不是通用数组。

在那种情况下,我该如何定义学校对象?

标签: typescriptinterface

解决方案


不清楚为什么要使用泛型?如果你的学校接口也需要一个学生类型,你可以声明另一个接口:

interface School {
    name: string;
    students: Student[];
}

interface Student {
    student_id: number;
    student_name: string;
}

let s:School = {
    name:"too cool for school",
    students: [
        { 
           student_id:3,
           student_name:"Joe"
        }
    ]
}

推荐阅读