Typescript 在对象方法的实现中是否有需要参数的类型脚本技巧?

Typescript 在对象方法的实现中是否有需要参数的类型脚本技巧?,typescript,Typescript,是否有一个typescript技巧使下面的给出一个TS错误 interface IFoo { update: (time: number) => void; } const foo: IFoo = { update: () => {} // <-- I want this to error from lack of number arg }; 接口IFoo{ 更新:(时间:编号)=>作废; } 常量foo:IFoo={ 更新:()=>{}/很遗憾,这是不可能的。请检

是否有一个typescript技巧使下面的给出一个TS错误

interface IFoo {
  update: (time: number) => void;
}

const foo: IFoo = {
  update: () => {} // <-- I want this to error from lack of number arg
};
接口IFoo{
更新:(时间:编号)=>作废;
}
常量foo:IFoo={

更新:()=>{}/很遗憾,这是不可能的。请检查以下内容:


这种类型的严格函数实现未被批准。

没有一个选项可以做到这一点,这是我所知道的,而且很难实现这样的选择。

function add1(x: number): number {
    return x + 1;
}

const arr = [1, 2, 3];
const arr2 = arr.map(add1);

此代码完全正确,但是
add1
函数缺少的一些参数是的回调签名的一部分;回调最多可以包含3个参数:数组中的元素、其索引和对数组本身的引用。如果建议的编译器选项已启用,则上面的代码将具有n错误,因为
add1
函数没有在其签名中声明所有三个参数。

AFAIK没有办法做到这一点,但是我看不出有必要这样做。为什么要有这个限制?@MikeJerred为什么?因为我在动画中实现了一个实体类,当我循环通过所有这样的实体时我想调用entity.update(时间),如果我忘记将更新作为这个时间参数的函数来实现,那么我的整个方法将无法正常工作。另外,对于使用我的代码的人来说,通过被告知他们必须实现这个方法,并且它必须接收这个参数,这将有助于他们理解一切是如何工作的;否则他们可能会尝试实现这个参数方法基于对更新工作原理的误解。您当然可以要求实现
update
函数-您提供的代码中已经实现了这一点,因为update不是接口的可选成员。这与要求函数使用传递给它的参数完全不同。是的。我明白这一点,因此为什么通常情况下,要求提供参数是不可取的。但我想知道,在我确实希望提供参数的特定/孤立情况下,是否有技巧。