Retrieve type parameter constraint using getConstraintFromTypeParameter

This commit is contained in:
Andrew Casey
2017-08-17 15:44:06 -07:00
parent 1a20b6a7c3
commit e02da343db
3 changed files with 5 additions and 3 deletions

View File

@@ -205,7 +205,7 @@ namespace ts {
getEmitResolver,
getExportsOfModule: getExportsOfModuleAsArray,
getExportsAndPropertiesOfModule,
getSymbolWalker: createGetSymbolWalker(getRestTypeOfSignature, getReturnTypeOfSignature, getBaseTypes, resolveStructuredTypeMembers, getTypeOfSymbol, getResolvedSymbol, getIndexTypeOfStructuredType),
getSymbolWalker: createGetSymbolWalker(getRestTypeOfSignature, getReturnTypeOfSignature, getBaseTypes, resolveStructuredTypeMembers, getTypeOfSymbol, getResolvedSymbol, getIndexTypeOfStructuredType, getConstraintFromTypeParameter),
getAmbientModules,
getAllAttributesTypeFromJsxOpeningLikeElement: node => {
node = getParseTreeNode(node, isJsxOpeningLikeElement);

View File

@@ -7,7 +7,8 @@ namespace ts {
resolveStructuredTypeMembers: (type: ObjectType) => ResolvedType,
getTypeOfSymbol: (sym: Symbol) => Type,
getResolvedSymbol: (node: Node) => Symbol,
getIndexTypeOfStructuredType: (type: Type, kind: IndexKind) => Type) {
getIndexTypeOfStructuredType: (type: Type, kind: IndexKind) => Type,
getConstraintFromTypeParameter: (typeParameter: TypeParameter) => Type) {
return getSymbolWalker;
@@ -92,7 +93,7 @@ namespace ts {
}
function visitTypeParameter(type: TypeParameter): void {
visitType(type.constraint);
visitType(getConstraintFromTypeParameter(type));
}
function visitUnionOrIntersectionType(type: UnionOrIntersectionType): void {

View File

@@ -3377,6 +3377,7 @@ namespace ts {
// Type parameters (TypeFlags.TypeParameter)
export interface TypeParameter extends TypeVariable {
/** Retrieve using getConstraintFromTypeParameter */
constraint: Type; // Constraint
default?: Type;
/* @internal */