首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何获取其值、T[K]是Typescript中可调用函数的` `keyof‘的子集

在Typescript中,TK表示类型T中属性K的类型。它是Typescript中可调用函数的keyof的子集。

要获取TK的值,可以通过以下方式:

  1. 对象字面量:通过对象字面量创建一个对象,并使用属性名来获取属性值。例如:
代码语言:typescript
复制
const obj = { key: 'value' };
const value = obj['key']; // 获取属性值
console.log(value); // 输出:value
  1. 对象引用:通过对象引用来获取属性值。例如:
代码语言:typescript
复制
class MyClass {
  key: string = 'value';
}

const myObj = new MyClass();
const value = myObj['key']; // 获取属性值
console.log(value); // 输出:value
  1. 泛型函数:通过泛型函数来获取属性值。例如:
代码语言:typescript
复制
function getProperty<T, K extends keyof T>(obj: T, key: K): T[K] {
  return obj[key];
}

const obj = { key: 'value' };
const value = getProperty(obj, 'key'); // 获取属性值
console.log(value); // 输出:value

在上述示例中,getProperty函数接受一个对象和一个属性名作为参数,并返回属性值。通过使用泛型和keyof,我们可以在编译时进行类型检查,确保属性名的正确性。

对于Typescript中可调用函数的keyof的子集,可以使用TK来获取属性值,并根据具体的应用场景选择适合的方法来获取。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

TypeScript 中使用泛型:使用指南

比如,TypeScript 中一个简单泛型函数可能像这个: function identity(arg: T): T { return arg; } 在这个简单例子T 一个类型变量,...我们可以通过 number,string 或者其他类型调用 identity 函数,其会返回相同类型,确保在整个操作类型安全。 泛型相比 any 类型,展示了它们真正优势。...通过这个方法,这能函数能放心使用将会存在传递过来参数 length 属性。 泛型中使用 keyof TypeScript keyof 操作符可以在泛型结合使用,来确保属性名类型安全。...下面它可能与泛型一起使用方式: function getProperty(obj: T, keyL K): T[K] { return obj[key...T 属性 K 子集 Record - 创建一个类型,该类型具有类型 T 一组属性 K 这些实用类型可以很大程度简化功能类型转换,确保我们代码精简和富有表现力。

10110

一份TypeScript高级类型入门手册,附大量代码实例,值得收藏

作者:望道 https://juejin.cn/post/6904150785966211086 TypeScript 一种类型化语言,允许你指定变量类型,函数参数,返回和对象属性。...Generic Types(泛型) 泛型类型复用给定类型一部分一种方式。它有助于捕获作为参数传递类型 T。 优点: 创建重用函数,一个函数可以支持多种类型数据。...; } Pick Pick 此方法允许你从一个已存在类型 T中选择一些属性作为K, 从而创建一个新类型 即 抽取一个类型/接口中一些子集作为一个新类型 T代表要抽取对象 K有一个约束...通过使用Extract关键字,我们可以获得T存在而U不存在字段。 Record Record 此工具帮助你构造具有给定类型T一组属性K类型。...就是说,如果我们在函数showType()中使用它,则接收到参数必须字符串-否则,TypeScript 将引发错误。

1.5K40

一份TypeScript高级类型入门手册,附大量代码实例,值得收藏

作者:望道 原文:https://juejin.cn/post/6904150785966211086 TypeScript 一种类型化语言,允许你指定变量类型,函数参数,返回和对象属性。...Generic Types(泛型) 泛型类型复用给定类型一部分一种方式。它有助于捕获作为参数传递类型 T。 优点: 创建重用函数,一个函数可以支持多种类型数据。...; } Pick Pick 此方法允许你从一个已存在类型 T中选择一些属性作为K, 从而创建一个新类型 即 抽取一个类型/接口中一些子集作为一个新类型 T代表要抽取对象 K有一个约束...通过使用Extract关键字,我们可以获得T存在而U不存在字段。 Record Record 此工具帮助你构造具有给定类型T一组属性K类型。...就是说,如果我们在函数showType()中使用它,则接收到参数必须字符串-否则,TypeScript 将引发错误。

1.5K30

TypeScript在项目开发应用实践体会

约定当前必须包含http://或者https://才算校验成功。...在实例当我们调用.name时候,其实本身就是调用了其get方式,而设置时,则是调用set方法, 需要注意,._name也输出了,但是TypeScript会进行提示你....image.png Exclude & Extract Exclude:从一个联合类型中排除掉属于另一个联合类型子集 来看下,Exclude使用形式Exclude,如果T属性在S不存在那么就会返回...image.png 其他 TypeScript工具类型有很多,不只是官方提供,在日常实践,也会定义非常多工具类型。那么在了解工具类型同时,更多知晓这些工具类型如何,怎么实现。...相信我,当你弄懂后,你对于使用Typescript会有一个新认识,写起来会更加得心应手。 实践场景 看完了太多理论东西,那么来看看在日常实践如何真实实践一把呢?

2.8K60

TS 4.1 新特性实现 Vuex 无限层级命名空间 dispatch 类型推断。

利用 type Values = { [K in keyof Modules]: Modules[K] }[keyof Modules] 这种方式,可以轻松把对象里所有 类型给展开,比如 type...Obj = { a: 'foo' b: 'bar' } type T = Values // 'foo' | 'bar' 由于我们要拿到 cart、user 对应里提取出来 key...add() { }, remove() { } } }, 那么拿到它 Mutations 后,我们只需要去拼接 cart/add、cart/remove 即可,那么如何拿到一个对象类型...keyof GetMutations 它还有可能 symbol | number 类型,所以用 Keys & string 来取其 string 类型,这个技巧也是老爷子在 Template string...types MR 中提到: Above, a keyof T & string intersection is required because keyof T could contain symbol

2.2K30

TypeScript 演化史 — 第七章】映射类型和更好字面量类型推断

freezePoint 函数接受一个 Point 作为参数并冻结该参数,接着,向调用者返回相同对象。然而,该对象类型已更改为FrozenPoint,因此其属性被静态类型化为只读。...需要 freezePoint 函数。对于希望在应用程序冻结每种类型对象,咱们就必须定义一个包装器函数,该函数接受该类型对象并返回冻结类型对象。...使用映射类型构建 Object.freeze() 来看看 Object.freeze()如何在 lib.d.ts 文件定义: /** * Prevents the modification of...在方括号,使用了 keyof 操作符。keyof TT 类型所有属性名表示为字符串字面量类型联合。 方括号 in 关键字表示我们正在处理映射类型。...: T[P] }; /** * From T pick a set of properties K */ type Pick = { [P in K

3.7K40

一份TypeScript高级类型入门手册,附大量代码实例,值得收藏

作者:望道 https://juejin.cn/post/6904150785966211086 TypeScript 一种类型化语言,允许你指定变量类型,函数参数,返回和对象属性。...Generic Types(泛型) 泛型类型复用给定类型一部分一种方式。它有助于捕获作为参数传递类型 T。 优点: 创建重用函数,一个函数可以支持多种类型数据。...; } Pick Pick 此方法允许你从一个已存在类型 T中选择一些属性作为K, 从而创建一个新类型 即 抽取一个类型/接口中一些子集作为一个新类型 T代表要抽取对象 K有一个约束...通过使用Extract关键字,我们可以获得T存在而U不存在字段。 Record Record 此工具帮助你构造具有给定类型T一组属性K类型。...就是说,如果我们在函数showType()中使用它,则接收到参数必须字符串-否则,TypeScript 将引发错误。

92920

TypeScript 演化史 -- 7】映射类型和更好字面量类型推断

freezePoint 函数接受一个 Point 作为参数并冻结该参数,接着,向调用者返回相同对象。然而,该对象类型已更改为FrozenPoint,因此其属性被静态类型化为只读。...需要 freezePoint 函数。对于希望在应用程序冻结每种类型对象,咱们就必须定义一个包装器函数,该函数接受该类型对象并返回冻结类型对象。...使用映射类型构建 Object.freeze() 来看看 Object.freeze()如何在 lib.d.ts 文件定义: /** * Prevents the modification...在方括号,使用了 keyof 操作符。keyof TT 类型所有属性名表示为字符串字面量类型联合。 方括号 in 关键字表示我们正在处理映射类型。...: T[P] }; /** * From T pick a set of properties K */ type Pick = { [P in K

2.8K10

深入理解 TypeScript Keyof 运算符,让你代码更安全、更灵活!

keyof 运算符TypeScript 2.1 版本引入。这个关键字已经成为 TypeScript 中高级类型基石,并在代码中经常使用。...一、如何定义 KeyOf 运算符 在 TypeScript keyof 运算符用于获取用户定义。它主要用于泛型,格式类似于联合运算符及其属性。keyof 运算符会检索用户指定索引。...当我们为变量赋值时,TypeScript 会确保赋值 DemoClass 有效属性之一。...二、在泛型中使用 KeyOf 运算 使用 KeyOf 运算符应用约束 在 TypeScript keyof 运算符常用于在泛型函数应用约束。...keyof T 返回字符串字面量类型联合。字面量指的是赋值给常量变量固定。由于 K 一个字符串字面量类型,我们使用 extends 关键字对 K 进行约束。

1300

速查手册 - TypeScript 高级类型 cheat sheet

X : Y 表示,如果 T 可以赋值给 U (类型兼容),则返回 X,否则返回 Y; 1.3、使用 `keyof` 和 `in` keyof 可以用来取得一个对象接口所有 key : interface...: T[P] }; 解释: keyof T 拿到 T 所有属性名 然后 in 进行遍历, 将赋给 P, 最后 T[P] 取得相应属性. 结合中间 ?...取出 一系列 K 属性 源码: type Pick = { [P in K]: T[P] }; 示例: // 从 T 挑选一些属性 K declare...在React高阶组件使用技巧 3.2、Extract(官方) 作用:从 T 中提取出包含在 U 类型,换言之就是从T 中提取出 U 子集 源码: type Extract = T extends...R : any; 解释: 我们可以用 infer 声明一个类型变量,用它获取函数返回类型,简单说就是用它取到函数返回类型方便之后使用.

1.2K10

深入学习下 TypeScript 泛型

函数声明了两个参数类型,其中 K 被分配一个类型,该类型 T key并集。...如果仔细查看您函数,您会发现参数列表或 TypeScript 能够推断其任何其他地方都没有使用泛型。这意味着调用代码在调用函数时必须显式传递此泛型类型。...{} as { [K in keyof T]: string } 代码通过对空对象 {} 进行类型转换,将累加器初始类型设置为 { [K in keyof T]: string }。...keyof T 运算符用于返回具有 T 中所有可用属性名称联合。然后使用 K in 语法指定新类型属性返回联合类型当前可用所有属性 T键。...这种类型实现如下所示: type Readonly = { readonly [K in keyof T]: T[K] } 注意:由于 Readonly 已经内置到 TypeScript

38.8K30

《现代Typescript高级教程》泛型和类型体操

类型为 number 在上面的示例,identity 函数使用类型参数 T,并返回与输入类型相同。...Pick Pick TypeScript 另一个内置泛型函数,它可以从给定类型 T 中选择指定属性 K 组成一个新类型。...这个例子结合了泛型、内置泛型函数 Pick、keyof 操作符和 extends 关键字,展示了如何TypeScript 处理复杂类型操作和转换。...Omit Omit TypeScript 另一个内置泛型函数,它返回一个新类型,该新类型排除了类型 T 中指定属性 K。...总结 泛型和类型体操 TypeScript 强大类型系统关键组成部分。通过使用泛型,我们可以创建重用、灵活和类型安全代码。

25730

Node.js 项目 TypeScript 改造指南(二)

如果有一个来自动态内容,我们在定义时候并不确定它类型时,any 可能唯一选择,官方文档[2]也是如此解释。因此我们可以看到 any 在基础库、第三方库普遍存在。...在上例,TypeName 一个条件类型,T1、T2 把泛型参数明确以后通过条件分支得到类型。...示例代码功能就是从数组、函数、Promise 解出其中类型。 可选 & 只读属性 type MutableRequired = { -readonly [P in keyof T]-?...S> = { [ K in keyof(T & S) ] : (K extends keyof T ?...:number } 收窄类型 TypeScript 没有提供类型转换能力,我们如何从 any、unknown、复杂联合类型获取具体类型就成为一个问题。

3.5K10
领券