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