关于类类型
来源:3-12 接口 -类类型+继承接口+混合类型+接口继承类

慕田峪8178134
2019-08-12
老师,你好,我是一个没有接触过类的小白…
你说的类一个类主要包含 2 个部分:静态部分和实例部分。
1.静态部分就是constructor里的内容,
实例部分就是类里除去constructor的其他内容吗?
有点迷惑关于这一段代码
interface ClockConstructor {
new (hour: number, minute: number): ClockInterface;
}
这里的new (hour: number, minute: number): ClockInterface;
2.为什么要指定返回类型是ClockInterface
3.为什么要用new,不能直接constructor(hour: number, minute: number) { }吗
还有这里
function createClock(ctor: ClockConstructor, hour: number, minute: number): ClockInterface {
return new ctor(hour, minute);
}
4.为什么要规定返回一个ClockInterface 类型,我尝试去掉,之后编译也没报错
写回答
1回答
-
1. 静态部分除了 constructor,还包括一些 static 方法。
2. 因为这是定义了构造函数的接口,一个类通过构造函数实例化后返回的就是它的实例,所以返回的类型就是类的实例类型,也就是 ClockInterface。
3. 必须要用 new,这样它才会被看作是一个构造函数的接口,否则就是一个普通函数了。
4. 通常我们去定义一个函数,要指定函数参数的类型以及返回值类型,虽然你不写返回值类型没有报错,但是并不是一个好习惯,建议还是写上。112019-08-13
相似问题