Я уже спрашивал об этом, но получил совет опубликовать новый вопрос, поскольку не предполагал, что проблема может быть связана с использованием TypeScript.
Итак, я пытаюсь создать интерфейс на d3. Я нашел код анимации ar c (http://bl.ocks.org/mbostock/5100636) и хочу немного его изменить (без функции arcTween ()). Вот часть моего кода (этот код в функции al oop, которая запускается сама):
var arc3 = d3.arc().innerRadius(77).outerRadius(90).startAngle(0);
var foregroundArc3 = imgs3
.append('path')
.attr('d', arc3)
.attr('stroke', 'white')
.attr('fill', 'white')
.style('fill-opacity', 0.5)
.attr('transform', 'translate('+(146.5)+','+(150.9)+')')
.datum({endAngle: 0.0628*90, newAngle: 0.0628*270})
.transition()
.duration(1500)
.attrTween('d', (d) => {
return (t) => {
const interpolate = d3.interpolate(d.endAngle, d.newAngle);
d.endAngle = interpolate(t);
return arc3(d);
};
});
Но есть ошибка: Аргумент типа '{endAngle: number; newAng: номер; } 'нельзя назначить параметру типа' DefaultArcObject '. Свойство innerRadius отсутствует в типе {endAngle: number; newAng: номер; } '.
И в консоли браузера "d" не определено. Мне было дано решение: переместить datum
до строки .attr('d', arc3)
. Но если я это сделаю, это не сработает (возникает та же ошибка), так как используется TypeScript.