欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
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。

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h63385.shtml