文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

typescript实用程序类型怎么构造

2024-04-02 19:55

关注

本文小编为大家详细介绍“typescript实用程序类型怎么构造”,内容详细,步骤清晰,细节处理妥当,希望这篇“typescript实用程序类型怎么构造”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

Partial

构造一个所有属性都Type设置为可选的类型。此实用程序将返回表示给定类型的所有子集的类型。

interface Todo {

  title: string;

  desc: string;

}

function updateTodo(todo: Todo, fieldsToUpdate: Partial<Todo>) {

  return { ...todo, ...fieldsToUpdate };

}

const todo1 = {

  title: 'organize desk',

  desc: 'clear clutter',

};

const todo2 = updateTodo(todo1, {

  desc: 'throw out trash',

});

Required

构造一个由Typeset to required的所有属性组成的类型

interface Props {

  a?: number;

  b?: string;

}

const obj: Props = { a: 5 };

const obj2: Required<Props> = { a: 5 };

Readonly

构造一个所有属性都Type设置为的类型readonly,这意味着不能重新分配构造类型的属性。

interface Todo {

  title: string;

}

const todo: Readonly<Todo> = {

  title: "Delete inactive users",

};

todo.title = "Hello";

Record<Keys,Type>

构造一个对象类型,其属性键为Keys,属性值为Type。此实用程序可用于将一种类型的属性映射到另一种类型。

interface CatInfo {

  age: number;

  breed: string;

}

type CatName = 'miffy' | 'boris' | 'mordred';

const cats: Record<CatName, CatInfo> = {

  miffy: { age: 10, breed: 'Persian' },

  boris: { age: 5, breed: 'Maine Coon' },

  mordred: { age: 16, breed: 'British Shorthair' },

};

Pick<Type, Keys>

通过从 中选取一组属性Keys(字符串文字或字符串文字的并集)来构造一个类型Type。

interface Todo {

  title: string;

  desc: string;

  completed: boolean;

}

type TodoPreview = Pick<Todo, 'title' | 'desc'>;

const todo: TodoPreview = {

  title: 'clean room',

  desc: 'ddddd',

};

Omit<Type, Keys>

通过从中选取所有属性Type然后删除Keys(字符串文字或字符串文字的并集)来构造类型。

interface Todo {

  title: string;

  description: string;

  completed: boolean;

  createdAt: number;

}

type TodoPreview = Omit<Todo, 'description'>;

const todo: TodoPreview = {

  title: 'Clean room',

  completed: false,

  createdAt: 1615544252770,

};

ReturnType

构造一个由 function 的返回类型组成的类型Type。

读到这里,这篇“typescript实用程序类型怎么构造”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯