我们有这样定义的接口:
interface IInitialInterface {
stack: string,
overflow: {
a: string,
b: string
}[],
}
如何仅使用overflow属性删除数组来创建类型?如果我这样做:
type TypeSearched = IInitialInterface['overflow']
然后我得到:
type TypeSearched = {
a: string,
b: string
}[]
但是我想删除数组。
谢谢。
答案 0 :(得分:2)
在这种情况下,未“键入”溢出属性,您可以这样做
interface IInitialInterface {
stack: string,
overflow: IOverflow[],
}
interface IOverflow {
a: string,
b: string
}
然后,您可以直接参考IOverflow而不是通过IInitialInterface来引用
type TypeSearched: IOverflow;
答案 1 :(得分:1)
要获取数组的成员类型,可以使用\s
进行深入研究。这将返回如果您使用任何数字访问该数组将返回的类型。
ArrayType[number]
但是,更干净的方法是从命名的小片段中构建片段,而不是分解大片段。
type TypeSearched = IInitialInterface['overflow'][number]
// { a: string; b: string; }