一、Readonly(源码)。
介绍:Readonly<T>
是一个类型工具(Type Utility),用于创建一个新的只读版本的类型 T
。它将类型 T
中的所有属性和索引都变成只读的。
注意:Readonly与readonly的区别:
在 TypeScript 中,readonly
是关键字用于将属性或索引标记为只读,表示这些属性或索引的值不能被修改。
而 Readonly<T>
是一个类型工具(Type Utility),用于创建一个新的只读版本的类型 T
。它将类型 T
中的所有属性和索引都变成只读的。
type TypePre={ name:string, age:number} //设置初始值
// 声明一个转换已有类型为只读类型的方法,如果值为对象类型,则需要递归
type Treadonly<T>={
readonly [key in keyof T]:T[key] extends Object?Treadonly<T[key]>:T[key]
}
type TypeNew= Treadonly<TypePre> // 得到新值
二、Partial
介绍:构造一个将 Type
的所有属性设置为可选的类型。 此实用程序将返回一个表示给定类型的所有子集的类型。
type TypePre={ name:string, age:number} //设置初始值
// 声明一个转换已有类型为可选类型的方法
type Tpartial<T>={
[key in keyof T]?:T[key]
}
type TypeNew= Tpartial<TypePre> // 得到新值