in src/assembler.ts [2254:2285]
function _tryMakePrimitiveType(this: Assembler): spec.PrimitiveTypeReference | undefined {
if (!type.symbol) {
if (type.flags & ts.TypeFlags.Object) {
if (isTupleType(type as ts.ObjectType)) {
this._diagnostics.push(
JsiiDiagnostic.JSII_1999_UNSUPPORTED.create(declaration, { what: 'Tuple types', alternative: 'arrays' }),
);
}
return { primitive: spec.PrimitiveType.Json };
}
if (type.flags & (ts.TypeFlags.Any | ts.TypeFlags.Unknown)) {
return spec.CANONICAL_ANY;
}
} else if (
type.symbol.valueDeclaration &&
isUnder(type.symbol.valueDeclaration.getSourceFile().fileName, this.stdlib)
) {
switch (type.symbol.name) {
case 'Boolean':
return { primitive: spec.PrimitiveType.Boolean };
case 'Date':
return { primitive: spec.PrimitiveType.Date };
case 'Number':
return { primitive: spec.PrimitiveType.Number };
case 'String':
return { primitive: spec.PrimitiveType.String };
}
}
// Not a primitive type!
return undefined;
}