gpt4 book ai didi

TypeScript - 如何从 TypeScript 的接口(interface)中提取一些属性?

转载 作者:搜寻专家 更新时间:2023-10-30 21:06:39 25 4
gpt4 key购买 nike

例如我为这样的帖子定义了一个结构:

interface PostsInfo{
md_content :string;
id :number;
title :string;
description :string;
update_time :Date;
create_time :Date;
comment_count :number;
}

然后,我需要一个没有属性 md_content 的其他接口(interface).

interface PostsInfoWithoutContent{
// How define?
}

它现在可以解决这个问题 PostsInfo扩展PostsInfoWithoutContent ,但是,如果我喜欢那样,当我需要时我该怎么做 PostsInfoWithoutComment (从 comment_count 中删除 PostsInfo )?

最佳答案

您可以使用内置的 Pick 类型来获取接口(interface)的一部分:

type PostsInfoWithoutConent= Pick<PostsInfo, "id" | "title">

如果您只想排除一个属性,您最好定义 Omit输入并使用它

type Diff<T extends string, U extends string> = ({[P in T]: P } & {[P in U]: never } & { [x: string]: never })[T];  
type Omit<T, K extends keyof T> = Pick<T, Diff<keyof T, K>>;
type PostsInfoWithoutContent= Omit<PostsInfo, "md_content">

关于TypeScript - 如何从 TypeScript 的接口(interface)中提取一些属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48839375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com