来自所有接口(键:值)值的板条箱类型

时间:2020-07-16 09:13:27

标签: typescript

假设这样的界面(如果需要,也可以是一种类型):

interface Layouts {
  Application: 'Home' | 'About' | 'Contact';
  Registration: 'Email' | 'Password' | 'ResetPassword'
}

我想创建一个新类型type Screens,该类型具有Layouts界面中的所有值(不是键),即'Home' | 'Email' | 'About' | 'Password'等...

是否可以做到这一点而无需重复数据?

1 个答案:

答案 0 :(得分:1)

您可以使用keyof关键字,使您可以获取Layouts界面键后面的类型。

interface Layouts {
  Application: 'Home' | 'About' | 'Contact';
  Registration: 'Email' | 'Password' | 'ResetPassword'
}

type Screens = Layouts[keyof Layouts];

playground



enter image description here