TS获取对象属性值的类型
Posted 前端精髓
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TS获取对象属性值的类型相关的知识,希望对你有一定的参考价值。
语法如下:
type Person = age: number; name: string; alive: boolean ;
type I2 = Person[keyof Person];
//type I2 = string | number | boolean
或者联合类型
const RestfulMethod =
get: 'GET',
post: 'POST',
put: 'PUT',
delete: 'DELETE'
as const
type IRestfulMethod = typeof RestfulMethod
type TypeRestfulMethod = IRestfulMethod[keyof IRestfulMethod]
// type TypeRestfulMethod = 'GET' | 'POST' | 'PUT' | 'DELETE'
查看官方文档:https://www.typescriptlang.org/docs/handbook/2/indexed-access-types.html
如果想获取对象属性名的类型,可以这样
type Person = age: number; name: string; alive: boolean ;
type I2 = keyof Person
//type I2 = 'age' | 'name' | 'alive'
把对象中的方法名取出来
let obj =
name: 'hello',
age: 18,
eat ()
return 'food'
,
link ()
return 'dog'
type methodsPick<T> = [K in keyof T]: T[K] extends Function ? K : never[keyof T];
// T1 = 'eat' | 'link'
type T1 = methodsPick<typeof obj>
以上是关于TS获取对象属性值的类型的主要内容,如果未能解决你的问题,请参考以下文章
TypeScript:TS2339 错误——“对象”类型上不存在属性
TS2339:“EventTarget”类型上不存在“最近”属性。 - 如何在 React 中获取原生 event.target?