打字稿选择-选择属性字段

时间:2019-01-24 16:15:14

标签: typescript

说我有一个界面,例如:

interface MyInterface {
   myProperty: {
     one: number
     two: string
   }
}

如何Pick myProperty个字段?有可能吗?
理想的结果应该是:

{
   one: number
   two: string
}

因此在使用类型时:

type MyType = ...

const t: MyType = ...
t.one = ...

3 个答案:

答案 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
}