【问题标题】:TypeScript - A function that returns a portion of the inputTypeScript - 返回部分输入的函数
【发布时间】:2018-09-15 17:27:03
【问题描述】:

我是 Typescript 的新手,我想编写一个函数来返回它接收到但信息较少的对象。

假设我有一个这样的类型:

type movie = {id: number, title:string, url:string, rating:number}

所以我需要一个函数来接收电影的数组,并只返回它的 id 和标题。

所以如果输入是:

[{id:1, title:神奇女侠, url: www, rating:5},{id:2, title: Super 男人,网址:www2,评分:7}]

我需要这样的输出:

[{id:1, title:神奇女侠},{id:2, title: 超人}]

有没有简单的方法可以做到这一点?

【问题讨论】:

  • 嗯,是的。你试过什么?您面临的具体问题是什么?
  • const doIt = (movies: movie[]) => movies.map(m => ({ id: m.id, title: m.title })); ????
  • 我会尝试,我设法创建了一个看起来像这样的数组 - [{1,wonder..},{2,super..}} 它没有打印字段名称在 console.log 中。

标签: arrays typescript types


【解决方案1】:

您可以使用Partial<...> 向 TS 发出信号,表明您正在使用一种类型(称为Partial)的部分

type Movie = { id: string | number, name: string, url: string }

const movies: Movie[] = [
  { id: 1, name: "Movie A", url: "http://www.google.com" },
  { id: 2, name: "Movie B", url: "http://www.google.com" }
]

function stripUrl ({ id, name }: Movie): Partial<Movie> {
  return { id, name }
}

const mMovies = movies.map(stripUrl)

【讨论】:

    猜你喜欢
    • 2019-06-07
    • 2019-12-19
    • 1970-01-01
    • 2023-03-28
    • 2022-11-11
    • 2021-05-28
    • 1970-01-01
    • 2021-05-03
    • 1970-01-01
    相关资源
    最近更新 更多