javascript – TypeScript,什么是对象文字的调用签名?它们如何与泛型类型一起使用?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – TypeScript,什么是对象文字的调用签名?它们如何与泛型类型一起使用?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1124字,纯文字阅读大概需要2分钟。
内容图文
我正在阅读TypeScript documentation的这一部分,在泛型类型部分下,以下两个被认为是等价的:
代码示例1
function identity<T>(arg: T): T {
return arg;
}
let myIdentity: <T>(arg: T) => T = identity;
代码示例2
function identity<T>(arg: T): T {
return arg;
}
let myIdentity: {<T>(arg: T): T} = identity;
文档说明这可能是由于以下原因.
We can also write the generic type as a call signature of an object literal type
尽管有这条线,我仍然在努力理解两者是如何相等的,是否有任何进一步的文档或解释它是什么意思是’对象文字类型的调用签名’.
对不起,我不能给出任何进一步的解释,但我完全不知道两者是如何相等的,对我来说,第二种类型的定义表明myIdentity应该是一个对象?
谢谢.
解决方法:
函数可以具有属性,这就是对象文字语法的用途:它允许定义调用签名和其他属性.您的两个示例是等效的,因为第二个示例未在对象文字上定义其他属性.您可以在hybrid types部分阅读更多相关内容.
此外,对象文字允许为函数重载定义多个调用签名.您可以使用Object.assign创建此类接口的对象:
interface Foo {
(x: string): number,
(x: number): string,
bar: Array<any>,
}
const foo: Foo = Object.assign(function (x: any) {
if (typeof x === 'string') {
return parseInt(x);
} else {
return x.toString();
}
}, {
bar: []
});
内容总结
以上是互联网集市为您收集整理的javascript – TypeScript,什么是对象文字的调用签名?它们如何与泛型类型一起使用?全部内容,希望文章能够帮你解决javascript – TypeScript,什么是对象文字的调用签名?它们如何与泛型类型一起使用?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。