让typescript推断类方法的类型,实现一个接口



在我们的应用程序中,我希望它是可选的,必须定义方法参数,如果这些是从父节点知道的:

interface Parent<T> {
foo(arg1: T): void;
}
class MyImpl implements Parent<string> {
foo(arg1) {
}
}

当前抛出错误:

Parameter 'arg1' implicitly has an 'any' type.

我很好奇是否有办法避免这个错误。

真实的用例要复杂得多,使参数类型可选可以避免一堆相当复杂的类型杂耍。

在Typescript中还有一些地方可以推断,特别是:
type Callback = (s:string) => void;
function foo(cb: Callback) {
cb('hi');
}
foo(arg => console.log(arg));

我希望我能使它以某种方式与子类一起工作。

不幸的是,这是不可能的。这个问题已经讨论过了- https://github.com/Microsoft/TypeScript/issues/1373

最新更新