@@ -1531,7 +1531,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
1531
1531
var noImplicitThis = getStrictOptionValue(compilerOptions, "noImplicitThis");
1532
1532
var useUnknownInCatchVariables = getStrictOptionValue(compilerOptions, "useUnknownInCatchVariables");
1533
1533
var exactOptionalPropertyTypes = compilerOptions.exactOptionalPropertyTypes;
1534
- var noUncheckedSideEffectImports = !! compilerOptions.noUncheckedSideEffectImports;
1534
+ var noUncheckedSideEffectImports = compilerOptions.noUncheckedSideEffectImports !== false ;
1535
1535
1536
1536
var checkBinaryExpression = createCheckBinaryExpression();
1537
1537
var emitResolver = createResolver();
@@ -4684,9 +4684,9 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
4684
4684
}
4685
4685
}
4686
4686
4687
- function resolveExternalModuleName(location: Node, moduleReferenceExpression: Expression, ignoreErrors?: boolean): Symbol | undefined {
4687
+ function resolveExternalModuleName(location: Node, moduleReferenceExpression: Expression, ignoreErrors?: boolean, errorMessage?: DiagnosticMessage ): Symbol | undefined {
4688
4688
const isClassic = getEmitModuleResolutionKind(compilerOptions) === ModuleResolutionKind.Classic;
4689
- const errorMessage = isClassic ?
4689
+ errorMessage ?? = isClassic ?
4690
4690
Diagnostics.Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_to_the_paths_option
4691
4691
: Diagnostics.Cannot_find_module_0_or_its_corresponding_type_declarations;
4692
4692
return resolveExternalModuleNameWorker(location, moduleReferenceExpression, ignoreErrors ? undefined : errorMessage, ignoreErrors);
@@ -21504,15 +21504,15 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
21504
21504
let issuedElaboration = false;
21505
21505
if (!targetProp) {
21506
21506
const indexInfo = getApplicableIndexInfo(target, nameType);
21507
- if (indexInfo && indexInfo.declaration && !getSourceFileOfNode(indexInfo.declaration).hasNoDefaultLib ) {
21507
+ if (indexInfo && indexInfo.declaration && !host.isSourceFileDefaultLibrary( getSourceFileOfNode(indexInfo.declaration)) ) {
21508
21508
issuedElaboration = true;
21509
21509
addRelatedInfo(reportedDiag, createDiagnosticForNode(indexInfo.declaration, Diagnostics.The_expected_type_comes_from_this_index_signature));
21510
21510
}
21511
21511
}
21512
21512
21513
21513
if (!issuedElaboration && (targetProp && length(targetProp.declarations) || target.symbol && length(target.symbol.declarations))) {
21514
21514
const targetNode = targetProp && length(targetProp.declarations) ? targetProp.declarations![0] : target.symbol.declarations![0];
21515
- if (!getSourceFileOfNode(targetNode).hasNoDefaultLib ) {
21515
+ if (!host.isSourceFileDefaultLibrary( getSourceFileOfNode(targetNode)) ) {
21516
21516
addRelatedInfo(
21517
21517
reportedDiag,
21518
21518
createDiagnosticForNode(
@@ -24460,13 +24460,10 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
24460
24460
if (isObjectLiteralType(target)) {
24461
24461
for (const sourceProp of excludeProperties(getPropertiesOfType(source), excludedProperties)) {
24462
24462
if (!getPropertyOfObjectType(target, sourceProp.escapedName)) {
24463
- const sourceType = getTypeOfSymbol(sourceProp);
24464
- if (!(sourceType.flags & TypeFlags.Undefined)) {
24465
- if (reportErrors) {
24466
- reportError(Diagnostics.Property_0_does_not_exist_on_type_1, symbolToString(sourceProp), typeToString(target));
24467
- }
24468
- return Ternary.False;
24463
+ if (reportErrors) {
24464
+ reportError(Diagnostics.Property_0_does_not_exist_on_type_1, symbolToString(sourceProp), typeToString(target));
24469
24465
}
24466
+ return Ternary.False;
24470
24467
}
24471
24468
}
24472
24469
}
@@ -27888,24 +27885,22 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
27888
27885
for (const type of types) {
27889
27886
if (type.flags & (TypeFlags.Object | TypeFlags.Intersection | TypeFlags.InstantiableNonPrimitive)) {
27890
27887
const discriminant = getTypeOfPropertyOfType(type, name);
27891
- if (discriminant) {
27892
- if (!isLiteralType(discriminant)) {
27893
- return undefined;
27894
- }
27895
- let duplicate = false;
27896
- forEachType(discriminant, t => {
27897
- const id = getTypeId(getRegularTypeOfLiteralType(t));
27898
- const existing = map.get(id);
27899
- if (!existing) {
27900
- map.set(id, type);
27901
- }
27902
- else if (existing !== unknownType) {
27903
- map.set(id, unknownType);
27904
- duplicate = true;
27905
- }
27906
- });
27907
- if (!duplicate) count++;
27888
+ if (!discriminant || !isLiteralType(discriminant)) {
27889
+ return undefined;
27908
27890
}
27891
+ let duplicate = false;
27892
+ forEachType(discriminant, t => {
27893
+ const id = getTypeId(getRegularTypeOfLiteralType(t));
27894
+ const existing = map.get(id);
27895
+ if (!existing) {
27896
+ map.set(id, type);
27897
+ }
27898
+ else if (existing !== unknownType) {
27899
+ map.set(id, unknownType);
27900
+ duplicate = true;
27901
+ }
27902
+ });
27903
+ if (!duplicate) count++;
27909
27904
}
27910
27905
}
27911
27906
return count >= 10 && count * 2 >= types.length ? map : undefined;
@@ -38003,7 +37998,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
38003
37998
const exprType = checkExpression(expression, checkMode);
38004
37999
if (isConstTypeReference(type)) {
38005
38000
if (!isValidConstAssertionArgument(expression)) {
38006
- error(expression, Diagnostics.A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals );
38001
+ error(expression, Diagnostics.A_const_assertion_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals );
38007
38002
}
38008
38003
return getRegularTypeOfLiteralType(exprType);
38009
38004
}
@@ -48516,7 +48511,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
48516
48511
}
48517
48512
}
48518
48513
else if (noUncheckedSideEffectImports && !importClause) {
48519
- void resolveExternalModuleName(node, node.moduleSpecifier);
48514
+ void resolveExternalModuleName(node, node.moduleSpecifier, /*ignoreErrors*/ undefined, Diagnostics.Cannot_find_module_or_type_declarations_for_side_effect_import_of_0 );
48520
48515
}
48521
48516
}
48522
48517
checkImportAttributes(node);
0 commit comments