Как представлять миксины с помощью TypeScript - PullRequest
0 голосов
/ 11 июля 2019

Я пишу собственную миксиновую подпрограмму, она принимает различные типы объектов:

type HasIndex = {[key:string]:any};

// type RetType = ?

const mixinAll = (...v: HasIndex[]): RetType => {
   return v.reduce((a,b) => doMixing(a,b,new Set()), {});
});

, поэтому мой вопрос - как я могу представить возвращаемое значение для mixinAll?Есть ли способ представить тип mixin с TypeScript?Очень похоже на то же самое для Object.assign.

1 Ответ

0 голосов
/ 18 июля 2019

Если вы посмотрите на определение Object.assign, оно в значительной степени отвечает на вопрос:

interface ObjectConstructor {
 assign<T, U, V, W>(target: T, source1: U, source2: V, source3: W): T & U & V & W;
}

, используйте оператор & для создания типа пересечения - к сожалению, похоже, что он не может создатьчто-то более мелкое, чем это.

...