说我有一个界面,例如:
interface MyInterface {
myProperty: {
one: number
two: string
}
}
如何Pick
myProperty
个字段?有可能吗?
理想的结果应该是:
{
one: number
two: string
}
因此在使用类型时:
type MyType = ...
const t: MyType = ...
t.one = ...
答案 0 :(得分:1)
您可以为myProperty创建一个单独的界面:
interface MyProperty {
one: number
two: string
}
interface MyInterface {
myProperty: MyProperty
}
const myObject: MyProperty = { one: 1, two: "2" };
然后在整个代码中使用它。
答案 1 :(得分:1)
如果要获取成员的类型,只需使用类型查询:
interface MyInterface {
myProperty: {
one: number
two: string
}
}
type MyType = MyInterface['myProperty']
const t: MyType = {
one: 1,
two: '2'
};
t.one = 3
尽管按照另一个答案的建议重构为单独的类型,但如果可能的话,这可能是更明智的选择。
答案 2 :(得分:1)
将它们分为2个单独的界面
interface MyProperty {
one: number
two: string
}
interface MyInterface {
myProperty:MyProperty
}