Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript TypeScript:实现接口时是否需要参数类型?_Javascript_Typescript - Fatal编程技术网

Javascript TypeScript:实现接口时是否需要参数类型?

Javascript TypeScript:实现接口时是否需要参数类型?,javascript,typescript,Javascript,Typescript,假设我有以下接口IFace,以及接口Add的实现: interface IFace { add(a: number, b:number): number } class Add implements IFace { add(a,b) } 在我的add类中实现add()方法时,是否可以不指定: 方法的返回类型 参数的类型是a和b 我尝试搜索堆栈溢出和​internet未找到任何相关信息。必须在AddclassesAdd()函数的方法签名中指定每个参数的类型。但是,您的Add类Ad

假设我有以下接口
IFace
,以及接口
Add
的实现:

interface IFace {
    add(a: number, b:number): number
}

class Add implements IFace {
   add(a,b)
}
在我的
add
类中实现
add()
方法时,是否可以不指定:

  • 方法的返回类型
  • 参数的类型是
    a
    b

  • 我尝试搜索堆栈溢出和​internet未找到任何相关信息。

    必须在
    Add
    classes
    Add()
    函数的方法签名中指定每个参数的类型。但是,您的
    Add
    Add()
    函数的返回类型可以从正在实现的接口推断出来,不需要显式提供

    因此,以下内容是有效的:

    interface IFace {
        add(a: number, b:number): number
    }
    
    class Add implements IFace {
    
     /* Must supply number types for a and b, but return type of function be be omitted */
     add(a:number,b:number) {
        return a + b;
     }
    }
    

    从正式的打印纸条文件() 接口描述类的公共端,而不是公共端和私有端。这禁止您使用它们来检查类实例的私有端是否也有特定类型(因此,是的,在这种情况下,您需要定义a&b和d的类型)

    我想说是的,因为函数(和方法)可以在typescript中进行类型重载。因此,
    add(a,b)
    是否实现了
    IFace.add
    并不十分清楚。
    interface ClockInterface {
        currentTime: Date;
        setTime(d: Date): void;
    }
    
    class Clock implements ClockInterface {
        currentTime: Date = new Date();
        setTime(d: Date) {
            this.currentTime = d;
        }
        constructor(h: number, m: number) { }
    }