合并两个对象的函数的TypeScript定义

合并两个对象的函数的TypeScript定义,typescript,types,merge,declaration,Typescript,Types,Merge,Declaration,给定一个函数,该函数接收两个不同类型的对象,即对象a和对象B,将两个对象合并为一个,并返回该合并对象: /** * @description Merge the contents of two objects into a single object * @param {Object} target The target object of the merge * @param {Object} ex The object that is merged with target * @

给定一个函数,该函数接收两个不同类型的对象,即对象a和对象B,将两个对象合并为一个,并返回该合并对象:

/**  
 * @description Merge the contents of two objects into a single object
 * @param {Object} target The target object of the merge
 * @param {Object} ex The object that is merged with target
 * @return {Object} The target object
 * @example
 * var A = {a: function() {console.log(this.a}};
 * var B = {b: function() {console.log(this.b}};
 *
 * pc.extend(A,B);
 * A.a();
 * // logs "a"
 * A.b();
 * // logs "b"
 */
这是我想到的,但不知何故,我不确定这是否正确:

function extend<T>(target: T, ex: T): T
功能扩展(目标:T,ex:T):T

函数声明应该是什么样子?我应该为此使用泛型类型吗?如何定义要返回的合并类型?

您描述的是一种交叉点类型,是多种类型的组合。您的场景甚至在中进行了解释

在本例中,需要引入第二个泛型参数来表示另一种类型。您的签名应如下所示:

function extend<T, U>(target: T, ex: U): T & U
功能扩展(目标:T,ex:U):T&U

您描述的是一种交叉口类型,是多种类型的组合。您的场景甚至在中进行了解释

在本例中,需要引入第二个泛型参数来表示另一种类型。您的签名应如下所示:

function extend<T, U>(target: T, ex: U): T & U
功能扩展(目标:T,ex:U):T&U

谢谢,我觉得有点傻。我已经看过文档中的“混合”和“声明合并”部分。谢谢你给我指明了正确的方向。我相信这个问题和你的答案对其他像我这样的打字新手仍然有用。谢谢,我觉得有点傻。我已经看过文档中的“混合”和“声明合并”部分。谢谢你给我指明了正确的方向。我相信这个问题和你的答案对像我这样的打字新手仍然有用。