Я пытаюсь реализовать концепцию отображения морфизма / DTO в машинописи.
Чтобы дать краткий обзор концепции морфизма, морфизм относится к сохраняющей структуру карте из одной математической структуры в другую.Морфизм f с источником X и целью Y записывается как f: X → Y.
Подробнее о https://en.wikipedia.org/wiki/Morphism
Я пытаюсь выполнить сопоставление источника с назначением объекта сложного типа (т.е.объект, содержащий другой объект и массивы объекта) в общем виде с использованием морфизма StrictSchema.Пожалуйста, обратитесь к ссылке ниже, чтобы узнать больше о пакете морфизма npm.https://github.com/nobrainr/morphism
мой интерфейс
interface IFoo {
keyA: {
key1: number,
key2: number,
key3: [
{
key3A: string,
key3B: number
}
],
key4: string
},
keyB: string,
keyC: number,
keyD: {
key1: string,
key2: {
key2A: string
},
key3: string
},
keyE: string
}
const schema: StrictSchema<IFoo> =
{ keyA: {
key1: 'somepath',
key2: 'somepath',
key3: [
{
key3A: 'somepath',
key3B: 'somepath'
}
],
key4: 'somepath'
},
keyB: 'somepath',
keyC: 'somepath',
keyD: {
key1: 'somepath',
key2: {
key2A: 'somepath'
},
key3: 'somepath'
},
keyE: 'somepath'
};
const target = morphism(schema, someSourceObject);
Здесь схема - это карта сохранения объекта для моего интерфейса.Я добавил «somepath» в качестве значения для каждого ключа, и я заменил его на некоторый фактический путь от фактического исходного объекта.но при этом я получаю: Ошибка: ожидаемый тип происходит из свойства 'keyA', которое объявлено здесь для типа 'StrictSchema
Итак, прежде всего, могу ли я сохранить отображение в вышеупомянутом сценарии, используя морфизм, потому что яне сталкивались с такими примерами, используя ScrictSchema.Если да, то как?