📄 propertyTypes.ts
¶
📊 Analysis Summary¶
Metric | Count |
---|---|
🔧 Functions | 5 |
📚 Table of Contents¶
🛠️ File Location:¶
📂 packages/type-utils/src/propertyTypes.ts
Functions¶
getTypeOfPropertyOfName(checker: ts.TypeChecker, type: ts.Type, name: string, escapedName: ts.__String): ts.Type | undefined
¶
Code
export function getTypeOfPropertyOfName(
checker: ts.TypeChecker,
type: ts.Type,
name: string,
escapedName?: ts.__String,
): ts.Type | undefined {
// Most names are directly usable in the checker and aren't different from escaped names
if (!escapedName || !isSymbol(escapedName)) {
return checker.getTypeOfPropertyOfType(type, name);
}
// Symbolic names may differ in their escaped name compared to their human-readable name
// https://github.com/typescript-eslint/typescript-eslint/issues/2143
const escapedProperty = type
.getProperties()
.find(property => property.escapedName === escapedName);
return escapedProperty
? checker.getDeclaredTypeOfSymbol(escapedProperty)
: undefined;
}
- Parameters:
checker: ts.TypeChecker
type: ts.Type
name: string
escapedName: ts.__String
- Return Type:
ts.Type | undefined
- Calls:
isSymbol
checker.getTypeOfPropertyOfType
type .getProperties() .find
checker.getDeclaredTypeOfSymbol
- Internal Comments:
getTypeOfPropertyOfType(checker: ts.TypeChecker, type: ts.Type, property: ts.Symbol): ts.Type | undefined
¶
Code
- Parameters:
checker: ts.TypeChecker
type: ts.Type
property: ts.Symbol
- Return Type:
ts.Type | undefined
- Calls:
getTypeOfPropertyOfName
property.getName
property.getEscapedName
isSymbol(escapedName: string): boolean
¶
Code
- Parameters:
escapedName: string
- Return Type:
boolean
- Calls:
isKnownSymbol
isPrivateIdentifierSymbol
isKnownSymbol(escapedName: string): boolean
¶
- Parameters:
escapedName: string
- Return Type:
boolean
- Calls:
escapedName.startsWith
isPrivateIdentifierSymbol(escapedName: string): boolean
¶
Code
- Parameters:
escapedName: string
- Return Type:
boolean
- Calls:
escapedName.startsWith