Não é possível usar attr com um objeto no D3 v4

Eu tenho tentado converter um bom exemplo de gráfico D3 (https://jsfiddle.net/thudfactor/HdwTH/ ) para um componente Angular2 com o novo D3 v4.

No entanto, recebo uma exceção "não é possível ler o texto da propriedade nula" com o seguinte código:

var textLabels = labelGroups.append("text").attr({
    x: function (d, i) {
        var centroid = pied_arc.centroid(d);
        var midAngle = Math.atan2(centroid[1], centroid[0]);
        var x = Math.cos(midAngle) * cDim.labelRadius;
        var sign = (x > 0) ? 1 : -1
        var labelX =, x + (5 * sign)
        return labelX;
    },
    y: function (d, i) {
        var centroid = pied_arc.centroid(d);
        var midAngle = Math.atan2(centroid[1], centroid[0]);
        var y = Math.sin(midAngle) * cDim.labelRadius;
        return y;
    },
    'text-anchor': function (d, i) {
        var centroid = pied_arc.centroid(d);
        var midAngle = Math.atan2(centroid[1], centroid[0]);
        var x = Math.cos(midAngle) * cDim.labelRadius;
        return (x > 0) ? "start" : "end";
    },
    'class': 'label-text'
}).text(function (d, i) {      <--------------- exception
    return d.data.label;
});

labelgroups é uma seleção, o anexo deve funcionar, portanto deve ser o.attr({}) causando o problema. No entanto, funciona bem no jsfiddle.
Essa sintaxe foi alterada no D3 v4? Como isso seria correto?

Obrigado!

questionAnswers(1)

yourAnswerToTheQuestion