Скажем, у нас есть такой массив:
const v = [
{name: 'foo', type: 'Boolean' },
{name: 'bar', type: 'String' },
{name: 'baz', type: 'JSON' },
];
достаточно просто, но что, если мы хотим добавить свойство типа:
const v = [
{name: 'foo', type: 'Boolean' },
{name: 'bar', type: 'String' },
{
name: 'baz',
type: 'JSON'
typeOverride: Array<{z:string, v: boolean}> // does not work, of course
}
];
но, конечно, это не работает, мы не можем использовать тип в качестве такого значения - мне интересно, есть ли способ как-нибудь добавить свойство типа к элементу массива.
Примерно так:
const addTypeProperty = <T>(v: Elem) => v;
const v = [
{name: 'foo', type: 'Boolean' },
{name: 'bar', type: 'String' },
addTypeProperty<Array<{z:string, v: boolean}>>({
name: 'baz',
type: 'JSON'
})
];
Кто-нибудь знает, о чем я? Может быть, я могу использовать декоратор?
addTypeProperty
необходимо как-то добавить свойство typeOverride к аргументу.