📄 isTypeBrandedLiteralLike¶
📊 Analysis Summary¶
| Metric | Count |
|---|---|
| 🔧 Functions | 4 |
📚 Table of Contents¶
🛠️ File Location:¶
📂 packages/type-utils/src/isTypeBrandedLiteralLike.ts
Functions¶
isTypeBrandedLiteralLike(type: ts.Type): boolean¶
Parameters:
typets.Type
Returns: boolean
Calls:
type.isUniontype.types.everyisTypeBrandedLiteral
Code
isLiteralOrTaggablePrimitiveLike(type: ts.Type): boolean¶
Parameters:
typets.Type
Returns: boolean
Calls:
type.isLiteraltsutils.isTypeFlagSet
Code
isObjectLiteralLike(type: ts.Type): boolean¶
Parameters:
typets.Type
Returns: boolean
Calls:
type.getCallSignaturestype.getConstructSignaturestsutils.isObjectType
Code
isTypeBrandedLiteral(type: ts.Type): boolean¶
Parameters:
typets.Type
Returns: boolean
Calls:
type.isIntersectionisObjectLiteralLikeisLiteralOrTaggablePrimitiveLike
Code
function isTypeBrandedLiteral(type: ts.Type): boolean {
if (!type.isIntersection()) {
return false;
}
let hadObjectLike = false;
let hadPrimitiveLike = false;
for (const constituent of type.types) {
if (isObjectLiteralLike(constituent)) {
hadPrimitiveLike = true;
} else if (isLiteralOrTaggablePrimitiveLike(constituent)) {
hadObjectLike = true;
} else {
return false;
}
}
return hadPrimitiveLike && hadObjectLike;
}
Generated by Syntax Scribe