问一个 ts 类型提取问题

emilll 27天前 19

interface Article {
  filename: string
  title: string
  date: string
}

const articles: Article[] = [
  {
    filename: 'article1',
    title: 'first article',
    date: '2021-04-13T18:10:40.578Z'
  },
  {
    filename: 'article2',
    title: 'second article',
    date: '2021-04-13T19:32:39.556Z'
  }
]

// 从 articles 的 filename 字段提取类型
// 结果 => type ArticleFilename = 'article1' | 'article2'
type ArticleFilename = ???
最新回复 (5)
  • codehz 22天前
    引用 2
    https://www.typescriptlang.org/play?#code/MYewdgzgLgBAhgJygS2AGwKYRgXhgbQCgYYBvYkmAM2UzDgFsMAuGAckRXQwEY2AaCiRRRMrNjQTR4SVJgFCYAEzhQW7AEwAGDTwC0WgCx6eAZgAqPABzMeW5oa0A6AKwB2KwC02FAL6CSckpqWgx6JnFOOQwNBWCRMXYIDFAwJRkueQDKFTVxbV0DYzNLAE5mUw0K0tcXADZvP0IAXXhsVOgAbkJCKABPAAcMGABBWW4AMVDw4dwYAAp+oZAqDOiIAEp8MABXBgAjDARm-AAiGjpGDFPm7sIO2DhWMcyMKcumOdOo7h5T7oeMH2z3GmHeYSuXzgECU-yAA

    这样应该就好了
  • 楼主 emilll 22天前
    引用 3
    @codehz 哇,谢谢大佬
  • orzfly 22天前
    引用 4
    基于楼上,如果还要限制 articles 本身的格式,我知道一个这样的方法:

    https://www.typescriptlang.org/play?#code/GYVwdgxgLglg9mABAQwM4BUA86B8AKASkQG8AoRRAJwFMoRKk8ZEBeHRGItRbdRagB5RqYACapEuJgC5J6ImzmkAvqVIwwwysGQRqiAIKVYEADb6yFYDHNhkAW2qzUUShoDm5RLCjnnrjy9RZGF-NzBPVVIIBBcUYxgzagkWFAxMGmRRBFMAT0MEpIBtAF18Ajwir0sKRGtbBydEAHJkQvMARmaAGi8KHz8W60o4tpNzHr7EYNCWgCYABjmOgFoFgBYVjoBmdA6ADmkOhel1hYA6AFYAdn2ALWavZV6KGqsbEUbZVvbqOcnat4YL4ms1UNQYmJ4uNqADajNQYtlmtNjs9gBOaTbOZY9FXS4ANgeT1IJTSiEhLgIAG41FBcgAHfRGGEAMQ+dkcFFSeHpTLgwGhiXMqAIRTAIHsACNqJQSkUAET1T6OBUlWnRWJQFCyFnC6jshpc1IKsb6joK2mU7VS3W-Q0q-QmtCiS1AA

    不知道有没有更好的办法。
  • 楼主 emilll 22天前
    引用 5
    @orzfly 这个思路可以啊,用函数做代理提取类型。从结果来看很完美了
  • ryougifujino 22天前
    引用 6
    学习了,一开始还以为不行。
  • 游客
    7
返回