Get link inside of binding converting function

Hi. If someone could help me would be great.
I have a link template with shape inside. I want to change shape stroke depend on multiple conditions like link.isHighlighted, link.isSelected and some props from link.data.
Can i get link inside of converting function for some way?

$(go.Link,
    $(go.Shape, new go.Binding('stroke', '', strokeColorBinding))
);

const strokeColorBinding = (data: LinkData, shape: go.Shape) => {
    const link = ?;

    if (link.isHighlighted || link.isSelected) {
        if (data.interCompanyLoan) {} else {}
    }

    if (data.isDisabled) {
        if (data.interCompanyLoan) {} else {}
    }

    // etc.

    return '#000';
};

If you want to evaluate when the link properties change, you’ll want to use ofObject bindings: https://gojs.net/latest/intro/dataBinding.html#BindingToGraphObjectSources. If you go that route, you’ll probably want to avoid using an empty string binding, as it will evaluate any time the link is updated. You could use separate bindings on the properties that are relevant:

$(go.Link,
    $(go.Shape, ...,
        new go.Binding('stroke', 'isHighlighted', strokeColorBinding).ofObject(),
        new go.Binding('stroke', 'isSelected', strokeColorBinding).ofObject(),
        new go.Binding('stroke', 'isDisabled', strokeColorBinding),
        new go.Binding('stroke', 'interCompanyLoan', strokeColorBinding)
    )
);

const strokeColorBinding = (val: any, shape: go.Shape) => {
    const link = shape.part;
    const data = link.data;

    if (link.isHighlighted || link.isSelected) {
        if (data.interCompanyLoan) {} else {}
    }

    if (data.isDisabled) {
        if (data.interCompanyLoan) {} else {}
    }

    // etc.

    return '#000';
};

@jhardy thanks for your help. Didn’t think about separate bindings with the same converting function.