打字稿:使用“ this”获取自定义界面的类型?

dutchrocks

如果返回接口的“自定义”类型并且使用typeof,那么我将获得原始类型(我理解为什么,我读了它),但是我可以获得自定义类型吗?

如果我有以下情况:

interface X{
   A:()=>Omit<typeof this, "A">,
   B:()=>Omit<typeof this, "B">,
   C:()=>Omit<typeof this, "C">,
}

let X : X = {...}

如果想做到以下几点:

即1:XA()。B()。C()

即2:XC()。A()。B()

但不是:XA()。B()。A()(目前可行)

提香·切尔尼科娃·德拉戈米尔

Typescript确实具有多态this类型,因此您可以编写以下接口:

interface X{
   A:()=>Omit<this, "A">,
   B:()=>Omit<this, "B">,
   C:()=>Omit<this, "C">,
}

但是,这不会做您想要的事情,因为this创建接口时绑定类型不是基于调用该函数的对象的类型。

我们可以使用this函数参数和泛型类型参数来捕获调用函数的对象的类型。这将按您期望的那样工作:

interface X{
   A:<T>(this: T)=>Omit<T, "A">,
   B:<T>(this: T)=>Omit<T, "B">,
   C:<T>(this: T)=>Omit<T, "C">,
}

let X: X = null!

X.A().B().C()
X.C().A().B()
X.A().B().A() // err

游乐场链接

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我不能使用打字稿为我的自定义界面扩展 HTMLElement 类型?

来自分类Dev

打字稿推断的类型不能使用

来自分类Dev

打字稿:使用元组作为索引类型

来自分类Dev

在yup模式中使用打字稿类型

来自分类Dev

使用打字稿推断类型的问题

来自分类Dev

如何使用打字稿获取unixtime

来自分类Dev

打字稿:使用嵌入对象获取常量

来自分类Dev

在打字稿界面键迭代中使用条件类型

来自分类Dev

使用 wordpress 中的自定义字段值获取自定义帖子类型数据

来自分类Dev

打字稿:使用其他类型的键定义类型

来自分类Dev

使用严格的null检查的RegExpMatchArray的打字稿类型定义

来自分类Dev

无法使用打字稿为通用比较功能定义类型

来自分类Dev

使用类型安全性定义打字稿泛型

来自分类Dev

如何使用打字稿文件导入/导出类型定义

来自分类Dev

使用打字稿获取字段类型而不创建实例

来自分类Dev

如何正确导入打字稿中的自定义类型

来自分类Dev

打字稿| 无法循环自定义类型对象

来自分类Dev

了解打字稿界面

来自分类Dev

Axios打字稿自定义AxiosRequestConfig

来自分类Dev

如何使用打字稿界面输入提示Vue道具?

来自分类Dev

如何使用react-select为选择使用自定义样式的打字稿

来自分类Dev

如何使用打字稿在猫鼬模型中定义自定义查询助手?

来自分类Dev

使用jQuery获取自定义属性

来自分类Dev

使用javascript从锚标记获取自定义数据

来自分类Dev

使用Javascript从按钮获取自定义属性

来自分类Dev

使用jQuery获取自定义属性

来自分类Dev

使用LINQ to XML获取自定义属性值

来自分类Dev

使用javascript获取自定义标头?

来自分类Dev

使用RegEx获取自定义标签之间的文本

Related 相关文章

热门标签

归档