如何在不使用接口方法的情况下强制打字稿检查正确的函数参数计数和数字?

我不想使用intreface,因为我必须为每个可能的函数类型组合创建接口 .

以下代码在使用tsc进行编译时不会抛出错误(不带参数)

let aaa: (x: number, y: number) => string = function(arg: number): string { return 'a'; };

以下代码也不会抛出错误:

let aaas: (x: number, y: number) => string = function(): string { return 'a'; };

我的tsc版本是

Version 2.9.2

我的想法是在我将函数作为参数时使用它(当使用sql的回调或代码中完成的其他工作时) . 我不想每次想要添加回调时创建界面 . 我的目标是使这项工作适用于用户定义的类

例:

export class LinkedList<V> {


 public serialize(serializeValue: (val: V) => void) {
    //todo
    serializeValue(some...)
  }

显然,linkedList可以在类实例内部进行 . 如果我犯了错误并提供无效函数作为回调,有没有办法强制tsc抛出编译错误?

谢谢