'Assign |ASN.1| type component by ASN.1 tag.
Parameters
tagSet : :py:class:`~pyasn1.type.tag.TagSet`
Object representing ASN.1 tags to identify one of
|ASN.1| object component
value : :class:`object` or :py:class:`~pyasn1.type.base.PyAsn1Item` derivative
A Python value to initialize |ASN.1| component with (if *componentType* is set)
or ASN.1 value object to assign to |ASN.1| component.
verifyConstraints : :class:`bool`
If `False`, skip constraints validation
matchTags: :class:`bool`
If `False`, skip component tags matching
matchConstraints: :class:`bool`
If `False`, skip component constraints matching
innerFlag: :class:`bool`
If `True`, search for matching *tagSet* recursively.
Returns
self'

def setComponentByType(self, tagSet, value=noValue, verifyConstraints=True, matchTags=True, matchConstraints=True, innerFlag=False):

    idx = self._componentType.getPositionByType(tagSet)
    if innerFlag:
        componentType = self._componentType.getTypeByPosition(idx)
        if componentType.tagSet:
            return self.setComponentByPosition(idx, value, verifyConstraints, matchTags, matchConstraints)
        else:
            componentType = self.getComponentByPosition(idx)
            return componentType.setComponentByType(tagSet, value, verifyConstraints, matchTags, matchConstraints, innerFlag=innerFlag)
    else:
        return self.setComponentByPosition(idx, value, verifyConstraints, matchTags, matchConstraints)
