ts泛型练习

1、声明一个对象

type obj = Record<string,any>
interface Person{
    
    
	name:string,
	age:number,
	phone:string
}
const person:obj = {
    
    
  userId:"",
}
const person1:Person = {
    
    
  name:"333",
  age:66,
  phone:'666'
}

使用内置Record创建对象和直接定义interface两种声明对象泛型
也可以这样使用

interface Person{
    
    
	name:string,
	age:number,
	phone:string
}
type obj = Record<string,Person>
const person: obj = {
    
    
  userId: {
    
    
    name: "333",
    age: 66,
    phone: "666",
  },
};

2、Partial可以将必填的属性全部转为可选属性(Require相反的作用)

interface Person{
    
    
	name:string,
	age:number,
	phone:string
}
type Personial = Partial<Person>

在这里插入图片描述

3、我们经常需要通过[]去获取对象的某个属性

const key = ""
const person:Person = {
    
    
	name:"zlb",
	age:16,
	phone:"159*******"
} 
console.log(person[key])

会报下面这样的错误提示
在这里插入图片描述
需要修改为

console.log(person[key as keyof typeof person])
// 或者
console.log(person[key as keyof Person])

猜你喜欢

转载自blog.csdn.net/zhoulib__/article/details/129816056