温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

typescript实用程序类型怎么构造

发布时间:2022-03-19 11:15:52 来源:亿速云 阅读:90 作者:iii 栏目:web开发

本文小编为大家详细介绍“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实用程序类型怎么构造”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI