TypeScript使用接口实现类推断类型参数

12

它会抱怨arg的类型是any

Translated text:

它会抱怨arg的类型是any

interface Foo { 
  foo(arg: string): void 
}

class FooImpl implements Foo {
  foo(arg) { console.log(arg) }
}

当然我可以指定它是string,但这很重复。

也许有一种方法可以调整TypeScript,使其自动推断它是string


同意,这是 TypeScript 中缺失的一个功能。然而,实现起来并不简单,因为您可以使用不同的参数实现具有相同 foo 函数的多个接口。需要一些签名合并。 - unional
我认为整个“推断”机制与 TypeScript 的设计不符。在 TypeScript 中,所有内容都需要进行强类型定义,而 JavaScript 则可以根据声明“假定”任何变量/参数的数据类型。 - Niladri
2
@Niladri TypeScript 在很多相当复杂的情况下都能正确地推断。 - Daniel Khoroshko
1个回答

8

深入挖掘:https://github.com/microsoft/TypeScript/pull/6118#issuecomment-216595207 有更具体的讨论。 - Thomas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接