按照老师所讲的内容,针对多个类中可以定义同一个模型形状的方法可以单独定义一个接口来描述形状。
但是在我的测试中,例如:
interface Radio {
fn(input: number): void;
}
class Car implements Radio {
fn(input: number) {}
}
class Phone implements Radio {
fn(input: number) {}
}
本来我以为单独定义好接口后,可以这么写:
interface Radio {
fn(input: number): void;
}
class Car implements Radio {
fn(input) {}
}
class Phone implements Radio {
fn(input) {}
}
但是发现不行,会提示这个 input 参数为 any。
那么我的问题是:既然方法需要写全各种参数及返回值等数据的类型,为什么还要单独给提成一个独立的接口?这样不麻烦吗?
比如像之前的接口定义:
// 接口定义
interface IFn {
(x: number, y: number): number
}
// 使用
const fn1: IFn = (x,y)=>{}
const fn2: IFn = (x,y)=>{}
const fn3: IFn = (x,y)=>{}
我觉得上面的这个写法是能理解的。但是类的这个写法有点不太明白,给我得感觉就像:
// 接口定义
interface IFn {
(x: number, y: number): number
}
// 使用
const fn1: IFn = (x: number, y: number):number => { return x + y}
那这样不费事么?