📄 propertyTypes¶
📊 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¶
Parameters:
checkerts.TypeCheckertypets.TypenamestringescapedNamets.__String
Returns: ts.Type | undefined
Calls:
isSymbolchecker.getTypeOfPropertyOfTypetype .getProperties() .findchecker.getDeclaredTypeOfSymbol
Internal Comments:
// Most names are directly usable in the checker and aren't different from escaped names
// Symbolic names may differ in their escaped name compared to their human-readable name (x2)
// https://github.com/typescript-eslint/typescript-eslint/issues/2143 (x2)
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;
}
getTypeOfPropertyOfType(checker: ts.TypeChecker, type: ts.Type, property: ts.Symbol): ts.Type | undefined¶
Parameters:
checkerts.TypeCheckertypets.Typepropertyts.Symbol
Returns: ts.Type | undefined
Calls:
getTypeOfPropertyOfNameproperty.getNameproperty.getEscapedName
Code
isSymbol(escapedName: string): boolean¶
Parameters:
escapedNamestring
Returns: boolean
Calls:
isKnownSymbolisPrivateIdentifierSymbol
Code
isKnownSymbol(escapedName: string): boolean¶
Parameters:
escapedNamestring
Returns: boolean
Calls:
escapedName.startsWith
isPrivateIdentifierSymbol(escapedName: string): boolean¶
Parameters:
escapedNamestring
Returns: boolean
Calls:
escapedName.startsWith
Code
Generated by Syntax Scribe