📄 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.TypeCheckertype: ts.Typename: stringescapedName: ts.__String- Return Type:
ts.Type | undefined - Calls:
isSymbolchecker.getTypeOfPropertyOfTypetype .getProperties() .findchecker.getDeclaredTypeOfSymbol- Internal Comments:
getTypeOfPropertyOfType(checker: ts.TypeChecker, type: ts.Type, property: ts.Symbol): ts.Type | undefined¶
Code
- Parameters:
checker: ts.TypeCheckertype: ts.Typeproperty: ts.Symbol- Return Type:
ts.Type | undefined - Calls:
getTypeOfPropertyOfNameproperty.getNameproperty.getEscapedName
isSymbol(escapedName: string): boolean¶
Code
- Parameters:
escapedName: string- Return Type:
boolean - Calls:
isKnownSymbolisPrivateIdentifierSymbol
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