什么是 TypeScript 里的 Constructor signature

简介: 什么是 TypeScript 里的 Constructor signature

TypeScript 官方文档里关于 Constructor signature 只有这短短的一段话:


JavaScript functions can also be invoked with the new operator. TypeScript refers to these as constructors because they usually create a new object. You can write a construct signature by adding the new keyword in front of a call signature:


JavaScript 函数也可以使用 new 运算符调用。 TypeScript 将这些称为构造函数,因为它们通常会创建一个新对象。 您可以通过在调用签名前添加 new 关键字来编写构造签名:

image.png

但这个例子还是看得我一头雾水,自己摸索了一下,写了一个例子:

image.png

下面的代码使用 constructor signature 定义了一个新的函数类型:


image.png


接收的输入是 number,输出是自定义类型 Jerry.


如果去掉 new,就是我们已经熟悉的 call signature 语法.


class MyConstructor 实现了 Jerry 类型:


image.png


MyConstructor 可以看成 SomeConstructor 的一种具体实现。这样,凡是输入参数需要传入 SomeConstructor 的地方,我传 MyConstructor 进去,一样能够工作。


image.png


demo 在这里相当于工厂函数,我们可以看到,尽管应用代码里没有显式使用 new 关键字,最后还是获得了两个不同的实例:

image.png


image.png

相关文章
|
JavaScript 前端开发
TypeScript里的Index signature
TypeScript里的Index signature
231 0
TypeScript里的Index signature
|
JavaScript
关于 TypeScript 内 constructor signature 的一些失败尝试
关于 TypeScript 内 constructor signature 的一些失败尝试
关于 TypeScript 内 constructor signature 的一些失败尝试
|
JavaScript
TypeScript constructor signature 类型的变量赋值方式
TypeScript constructor signature 类型的变量赋值方式
TypeScript constructor signature 类型的变量赋值方式
|
JavaScript
TypeScript里的Index signature
TypeScript里的Index signature
87 0
TypeScript里的Index signature
|
2月前
|
JavaScript 前端开发 安全
Apollo与TypeScript:强大类型检查在前端开发中的应用
Apollo与TypeScript:强大类型检查在前端开发中的应用
|
3月前
|
JavaScript 前端开发
TypeScript 联合类型
TypeScript 联合类型
34 0
|
3月前
|
存储 JavaScript 前端开发
2020你应该知道的TypeScript学习路线【数组类型】
2020你应该知道的TypeScript学习路线【数组类型】
31 0
|
1月前
|
JavaScript 安全
TypeScript 中的高级类型转换技术:映射类型、条件类型和类型推断
TypeScript 中的高级类型转换技术:映射类型、条件类型和类型推断
|
1月前
react+typescript给state和props定义指定类型
react+typescript给state和props定义指定类型
16 1
|
2月前
|
JavaScript 安全 索引
TypeScript泛型和类型体操
泛型和类型体操(Type Gymnastics)是 TypeScript 中高级类型系统的重要组成部分。它们提供了强大的工具和技巧,用于处理复杂的类型操作和转换。