typescript实用程序类型怎么构造-成都快上网建站

typescript实用程序类型怎么构造

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

创新互联建站IDC提供业务:成都西云数据中心,成都服务器租用,成都西云数据中心,重庆服务器租用等四川省内主机托管与主机租用业务;数据中心含:双线机房,BGP机房,电信机房,移动机房,联通机房。

Partial

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

interface Todo {

  title: string;

  desc: string;

}

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

  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 = { a: 5 };

Readonly

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

interface Todo {

  title: string;

}

const todo: Readonly = {

  title: "Delete inactive users",

};

todo.title = "Hello";

Record

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

interface CatInfo {

  age: number;

  breed: string;

}

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

const cats: Record = {

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

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

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

};

Pick

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

interface Todo {

  title: string;

  desc: string;

  completed: boolean;

}

type TodoPreview = Pick;

const todo: TodoPreview = {

  title: 'clean room',

  desc: 'ddddd',

};

Omit

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

interface Todo {

  title: string;

  description: string;

  completed: boolean;

  createdAt: number;

}

type TodoPreview = Omit;

const todo: TodoPreview = {

  title: 'Clean room',

  completed: false,

  createdAt: 1615544252770,

};

ReturnType

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

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


分享文章:typescript实用程序类型怎么构造
本文URL:http://kswjz.com/article/pgdcjd.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流