问题标签 [typescript-generics]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
typescript - Typescript中的对象索引键类型
我将我的泛型类型定义为
但是 TSLint 在抱怨。我应该如何定义一个可以作为键的对象索引类型?我也试过这些,但没有运气。
以上都不起作用。
那怎么办?
typescript - TypeScript 通用子类型
是否可以将命名空间作为通用类型传递,然后再从命名空间传递访问类型?我想实现这样的目标:
angularjs - 带有 Angular2 注入器的 TypeScript 泛型
我正在尝试使用注入器在角度中使用依赖注入。我希望我能够在运行时根据发送的组件来实例化类型。
我似乎找不到传递类型的方法。我采取了多种方法,包括:
TypeScript 中的泛型似乎与 .NET 中的不同。
angular - angular2中承诺的编译时类型安全
使用 ng cli 创建的新项目。当使用 "ng serve" 编译/服务时,编译过程不会捕获 Promise 的通用参数上的类型错误。而是为我自己的泛型类型抛出错误(如预期的那样)。
对于上面的代码,我得到了这个:
这是预期的,但它没有捕捉到 promise 函数的错误。令人怀疑的是,Sublime(带有 ts 插件)按预期显示错误。
我的 tsconfig.json
是否可以为承诺保留编译时类型安全性,或者我错过了什么?
generics - 打字稿:实现通用接口
考虑以下通用接口:
从概念上讲,每个Extractor
实现都负责从某个数据源中提取特定类型的对象。的消费者Extractor
可以使用 提取候选对象,extractCandidate()
或者在给定任何候选对象的情况下,对其执行一些进一步的处理,以获得对象的更精细版本process()
。
现在,假设我Extractor
为一个类实现了一个MyClass
,如下所示:
现在假设我实例化MyExtractor
并使用它:
问题 1:为什么这不会产生编译时错误?根据Extractor
接口的定义,我希望编译器不会允许我调用myExtractor.process()
除了 的实例之外的任何东西MyClass
,或者至少使用结构兼容的东西。
问题 2:如何强制执行所需的行为?我只需要断言的candidate
参数MyExtractor.process()
是类型MyClass
吗?
我怀疑这与 TypeScript 的结构类型系统有关,但是在阅读了一些 相关 问题和FAQ之后,我仍然不确定它是如何具体应用在这里的。
我的打字稿版本是 2.1.4。
typescript - Typescript 子泛型类型推断
这超出了 TypeScript 的能力范围,还是我做错了什么?这是一些我想要工作的代码:
ISquare
当我在函数调用的末尾放一个点时,智能感知应该显示成员returnSecondOption
,但它没有,它似乎将 T1 和 T2 视为{}
.
typescript - 在 Typescript 中按字符串返回不同的类型
鉴于我们有以下两种不同的类型,我们如何根据字符串参数更改函数的返回而不提供泛型类型?
这里没有定义返回!
typescript - 生成器的 TypeScript 错误
在 VSCode 中尝试此 TypeScript 时出现错误:
有没有大神可以赐教...
typescript - 如何在 Typescript 中进行适当的通用协调?
情况如下:
b
函数可选择接受值工厂,否则将默认生成。这是我拥有的更复杂代码的简化示例。
我知道 IValue != T (T
作为 的子项出现IValue
),但是我应该如何进行协调,以期望不仅与 IValue 的子项一起工作,而且包括确切的 IValue 类型本身?