我可以在打字稿中定义/链接类型到类吗?

安托万

在打字稿中,是否可以在类中使用“静态类型字段”?我知道以下内容是无效的,只是为了让您大致了解我要完成的工作:

class Collection<Item> {
  items: [Item];
  constructor() { this.items = [] }
  type ItemType = Item; // invalid
}
function for_each<Container>(
  container: Container,
  f: (val:Container.ItemType) => any // invalid
)
  { /* ... */ }
var strings = new Collection<string>();
var int_processor = function (val: number) {}
for_each(strings, int_processor); // I'd like an error here

我是Typescript的新手,我找不到是否存在执行这种操作的语法(有点像C ++类内部的typedef)。希望这将允许获得最后一行的错误,这样我就可以在编译的时候,我不能运行赶上int_processorstrings

有可能吗?

Aleksey L.

要回答原始问题-您不能在类内定义类型别名。这是相关的建议,不太可能实现。


但是看来您真正要寻找的是如何提取泛型类型参数。您可以为此使用条件类型

class Collection<Item> {
    items: Item[];
    constructor() { this.items = [] }
}

type GetItemType<T> = T extends Collection<infer ItemType> ? ItemType : never;

declare function for_each<Container>(
    container: Container,
    f: (val: GetItemType<Container>) => any
): void;

const strings = new Collection<string>();
const int_processor = function (val: number) { }
for_each(strings, int_processor); // Error: 'string' is not assignable to type 'number'

操场

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在打字稿中,我可以使用键列表从对象中删除未定义和空类型吗?

来自分类Dev

您可以在打字稿中动态扩展类型吗?

来自分类Dev

我可以在打字稿中添加到只读类成员数组吗?

来自分类Dev

我可以使用条件泛型在打字稿中设置回调返回类型吗?

来自分类Dev

我可以在打字稿中使用Handsontable吗

来自分类Dev

我应该使用new来在打字稿类中创建对象属性吗?

来自分类Dev

使用类的方法在打字稿中创建联合类型

来自分类Dev

如何在打字稿中定义对象类型的对象

来自分类Dev

在打字稿中,如何定义异步功能的类型

来自分类Dev

我可以对照打字稿中的联合类型检查类型吗?

来自分类Dev

在打字稿函数中声明“ this”的类型?

来自分类Dev

在打字稿中声明对象类型

来自分类Dev

在打字稿中创建数组类型

来自分类Dev

在打字稿中映射对象类型

来自分类Dev

在打字稿中映射类

来自分类Dev

在打字稿中获取类的键

来自分类Dev

我可以将函数导入打字稿类文件吗?

来自分类Dev

我可以将函数导入打字稿类文件吗?

来自分类Dev

确定可以在打字稿中具有多种类型的参数的类型

来自分类Dev

我可以在Object Pascal的类中定义类型吗?

来自分类Dev

如何在打字稿中的forEach下定义类型?

来自分类Dev

如何在打字稿中显式定义具有不同元组类型的元组数组?

来自分类Dev

有什么方法可以在打字稿中实例化通用文字类型?

来自分类Dev

如何在打字稿声明文件中定义单例javascript类

来自分类Dev

在打字稿中创建类时奇怪的未定义?

来自分类Dev

打字稿:定义类集合的类型

来自分类Dev

数组和泛型类扩展了另一个类:可以在打字稿中使用吗?

来自分类Dev

在打字稿中声明“返回类型”的简写

来自分类Dev

如何在打字稿中声明地图类型?

Related 相关文章

  1. 1

    在打字稿中,我可以使用键列表从对象中删除未定义和空类型吗?

  2. 2

    您可以在打字稿中动态扩展类型吗?

  3. 3

    我可以在打字稿中添加到只读类成员数组吗?

  4. 4

    我可以使用条件泛型在打字稿中设置回调返回类型吗?

  5. 5

    我可以在打字稿中使用Handsontable吗

  6. 6

    我应该使用new来在打字稿类中创建对象属性吗?

  7. 7

    使用类的方法在打字稿中创建联合类型

  8. 8

    如何在打字稿中定义对象类型的对象

  9. 9

    在打字稿中,如何定义异步功能的类型

  10. 10

    我可以对照打字稿中的联合类型检查类型吗?

  11. 11

    在打字稿函数中声明“ this”的类型?

  12. 12

    在打字稿中声明对象类型

  13. 13

    在打字稿中创建数组类型

  14. 14

    在打字稿中映射对象类型

  15. 15

    在打字稿中映射类

  16. 16

    在打字稿中获取类的键

  17. 17

    我可以将函数导入打字稿类文件吗?

  18. 18

    我可以将函数导入打字稿类文件吗?

  19. 19

    确定可以在打字稿中具有多种类型的参数的类型

  20. 20

    我可以在Object Pascal的类中定义类型吗?

  21. 21

    如何在打字稿中的forEach下定义类型?

  22. 22

    如何在打字稿中显式定义具有不同元组类型的元组数组?

  23. 23

    有什么方法可以在打字稿中实例化通用文字类型?

  24. 24

    如何在打字稿声明文件中定义单例javascript类

  25. 25

    在打字稿中创建类时奇怪的未定义?

  26. 26

    打字稿:定义类集合的类型

  27. 27

    数组和泛型类扩展了另一个类:可以在打字稿中使用吗?

  28. 28

    在打字稿中声明“返回类型”的简写

  29. 29

    如何在打字稿中声明地图类型?

热门标签

归档