@@ -1492,7 +1492,7 @@ namespace ts {
1492
1492
return classifiableNames ;
1493
1493
}
1494
1494
1495
- function resolveModuleNamesReusingOldState ( moduleNames : string [ ] , file : SourceFile ) : readonly ResolvedModuleFull [ ] {
1495
+ function resolveModuleNamesReusingOldState ( moduleNames : string [ ] , file : SourceFile ) : readonly ( ResolvedModuleFull | undefined ) [ ] {
1496
1496
if ( structureIsReused === StructureIsReused . Not && ! file . ambientModuleNames . length ) {
1497
1497
// If the old program state does not permit reusing resolutions and `file` does not contain locally defined ambient modules,
1498
1498
// the best we can do is fallback to the default logic.
@@ -1509,10 +1509,10 @@ namespace ts {
1509
1509
// which per above occurred during the current program creation.
1510
1510
// Since we assume the filesystem does not change during program creation,
1511
1511
// it is safe to reuse resolutions from the earlier call.
1512
- const result : ResolvedModuleFull [ ] = [ ] ;
1512
+ const result : ( ResolvedModuleFull | undefined ) [ ] = [ ] ;
1513
1513
let i = 0 ;
1514
1514
for ( const moduleName of moduleNames ) {
1515
- const resolvedModule = file . resolvedModules . get ( moduleName , getModeForResolutionAtIndex ( file , i ) ) ! ;
1515
+ const resolvedModule = file . resolvedModules . get ( moduleName , getModeForResolutionAtIndex ( file , i ) ) ;
1516
1516
i ++ ;
1517
1517
result . push ( resolvedModule ) ;
1518
1518
}
@@ -1534,7 +1534,7 @@ namespace ts {
1534
1534
* Needs to be reset to undefined before returning,
1535
1535
* * ResolvedModuleFull instance: can be reused.
1536
1536
*/
1537
- let result : ResolvedModuleFull [ ] | undefined ;
1537
+ let result : ( ResolvedModuleFull | undefined ) [ ] | undefined ;
1538
1538
let reusedNames : string [ ] | undefined ;
1539
1539
/** A transient placeholder used to mark predicted resolution in the result list. */
1540
1540
const predictedToResolveToAmbientModuleMarker : ResolvedModuleFull = { } as any ;
@@ -1602,7 +1602,7 @@ namespace ts {
1602
1602
// `result[i]` is either a `ResolvedModuleFull` or a marker.
1603
1603
// If it is the former, we can leave it as is.
1604
1604
if ( result [ i ] === predictedToResolveToAmbientModuleMarker ) {
1605
- result [ i ] = undefined ! ; // TODO: GH#18217
1605
+ result [ i ] = undefined ;
1606
1606
}
1607
1607
}
1608
1608
else {
0 commit comments