本文小编为大家详细介绍“typescript实用程序类型怎么构造”,内容详细,步骤清晰,细节处理妥当,希望这篇“typescript实用程序类型怎么构造”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,
本文小编为大家详细介绍“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实用程序类型怎么构造”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网node.js频道。
--结束END--
本文标题: typescript实用程序类型怎么构造
本文链接: https://lsjlt.com/news/94632.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2022-06-04
2022-06-04
2022-06-04
2022-06-04
2022-06-04
2022-06-04
2022-06-04
2022-06-04
2022-06-04
2022-06-04
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0