首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >声明和命名接口的部分版本的正确方法

声明和命名接口的部分版本的正确方法
EN

Stack Overflow用户
提问于 2019-06-01 03:33:03
回答 2查看 54关注 0票数 0

在下面的场景中声明Book接口的“正确”方式是什么,请记住,我们知道两种情况下book对象的确切结构。假设有一个Book接口:

代码语言:javascript
运行
复制
export interface Book {
  id: string;
  title: string;
  year: number;
  authorId: string;
  pages: number;
  language: string;    
}

还有一个Author接口,它有一个book属性,由“部分”book对象组成的数组:

代码语言:javascript
运行
复制
export interface Author {
  id: string;
  firstName: string;
  lastName: string;
  // How this book object should be declared?
  books: Array<{ id: string; title: string, year: number }>;
}
EN

回答 2

Stack Overflow用户

发布于 2019-06-01 04:02:01

如果"partial“指的是使Book上的任何属性成为可选的,那么可以使用typescript的导出帮助器Partial

代码语言:javascript
运行
复制
export interface Author {
  ...
  books: Partial<Book>[]
}

如果您所说的“部分”意味着它只包含Book的一些属性,并且这些属性应该保持其原始类型,那么您可以使用typescript导出的助手类型Pick

代码语言:javascript
运行
复制
export interface Author {
  ...
  books: Pick<Book, "id" | "title" | "year">[]
}
票数 0
EN

Stack Overflow用户

发布于 2019-06-01 04:02:52

这真的取决于你想要完成什么。

您可以使用Partial关键字books: Partial<Book>[];,或者创建另一个接口来包含{ id: string; title: string, year: number }接口的图书。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56400809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档