Add no implicit any to the strict null check (#5635)

* wip

* working through adding no implicit any
This commit is contained in:
Anthony Dresser
2019-06-04 09:29:40 -07:00
committed by GitHub
parent 50242b2c35
commit 4ad226570a
26 changed files with 296 additions and 306 deletions

View File

@@ -58,6 +58,8 @@ export function first<T>(from: IStringDictionary<T> | INumberDictionary<T>): T |
* Iterates over each entry in the provided set. The iterator allows
* to remove elements and will stop when the callback returns {{false}}.
*/
export function forEach<T>(from: IStringDictionary<T>, callback: (entry: { key: string; value: T; }, remove: () => void) => any): void; // {{SQL CARBON EDIT}} @anthonydresser add hard typings
export function forEach<T>(from: INumberDictionary<T>, callback: (entry: { key: number; value: T; }, remove: () => void) => any): void;
export function forEach<T>(from: IStringDictionary<T> | INumberDictionary<T>, callback: (entry: { key: any; value: T; }, remove: () => void) => any): void {
for (let key in from) {
if (hasOwnProperty.call(from, key)) {
@@ -96,4 +98,4 @@ export function fromMap<T>(original: Map<string, T>): IStringDictionary<T> {
});
}
return result;
}
}

View File

@@ -274,16 +274,16 @@ export class ContextAwareMenuEntryActionViewItem extends MenuEntryActionViewItem
// an icon/CSS class. Useful for some toolbar scenarios in particular with
// contributed actions from other extensions
export class LabeledMenuItemActionItem extends MenuEntryActionViewItem {
private _labeledItemClassDispose: IDisposable;
private _labeledItemClassDispose?: IDisposable;
constructor(
public _action: MenuItemAction,
@IKeybindingService private readonly _labeledkeybindingService: IKeybindingService,
@IKeybindingService labeledkeybindingService: IKeybindingService,
@IContextMenuService labeledcontextMenuService: IContextMenuService,
@INotificationService protected _notificationService: INotificationService,
@IContextMenuService private readonly _labeledcontextMenuService: IContextMenuService,
private readonly _defaultCSSClassToAdd: string = ''
) {
super(_action, _labeledkeybindingService, _notificationService, _labeledcontextMenuService);
super(_action, labeledkeybindingService, _notificationService, labeledcontextMenuService);
}
updateLabel(): void {
@@ -302,7 +302,7 @@ export class LabeledMenuItemActionItem extends MenuEntryActionViewItem {
const iconPathMapKey = item.iconLocation.dark.toString();
if (MenuEntryActionViewItem.ICON_PATH_TO_CSS_RULES.has(iconPathMapKey)) {
iconClass = MenuEntryActionViewItem.ICON_PATH_TO_CSS_RULES.get(iconPathMapKey);
iconClass = MenuEntryActionViewItem.ICON_PATH_TO_CSS_RULES.get(iconPathMapKey)!;
} else {
iconClass = ids.nextId();
createCSSRule(`.icon.${iconClass}`, `background-image: url("${(item.iconLocation.light || item.iconLocation.dark).toString()}")`);

View File

@@ -259,7 +259,7 @@ function getVersionAsset(version: IRawGalleryExtensionVersion, type: string): IG
const result = version.files.filter(f => f.assetType === type)[0];
// {{SQL CARBON EDIT}}
let uriFromSource: string = undefined;
let uriFromSource: string | undefined;
if (result) {
uriFromSource = result.source;
}
@@ -275,7 +275,7 @@ function getVersionAsset(version: IRawGalleryExtensionVersion, type: string): IG
fallbackUri: `${version.fallbackAssetUri}/${type}`
};
} else {
return result ? { uri: uriFromSource, fallbackUri: `${version.fallbackAssetUri}/${type}` } : null;
return result ? { uri: uriFromSource!, fallbackUri: `${version.fallbackAssetUri}/${type}` } : null;
}
// return result ? { uri: `${version.assetUri}/${type}`, fallbackUri: `${version.fallbackAssetUri}/${type}` } : null;
// {{SQL CARBON EDIT}} - End
@@ -410,7 +410,7 @@ export class ExtensionGalleryService implements IExtensionGalleryService {
if (extension) {
return Promise.resolve(extension);
}
const { id, uuid } = extension ? extension.identifier : <IExtensionIdentifier>arg1;
const { id, uuid } = <IExtensionIdentifier>arg1; // {{SQL CARBON EDIT}} @anthonydresser remove extension ? extension.identifier
let query = new Query()
.withFlags(Flags.IncludeAssetUri, Flags.IncludeStatistics, Flags.IncludeFiles, Flags.IncludeVersionProperties, Flags.ExcludeNonValidated)
.withPage(1, 1)
@@ -542,15 +542,15 @@ export class ExtensionGalleryService implements IExtensionGalleryService {
// Filtering
let filteredExtensions = galleryExtensions;
if (query.criteria) {
const ids = query.criteria.filter(x => x.filterType === FilterType.ExtensionId).map(v => v.value.toLocaleLowerCase());
const ids = query.criteria.filter(x => x.filterType === FilterType.ExtensionId).map(v => v.value ? v.value.toLocaleLowerCase() : undefined);
if (ids && ids.length > 0) {
filteredExtensions = filteredExtensions.filter(e => e.extensionId && ids.includes(e.extensionId.toLocaleLowerCase()));
}
const names = query.criteria.filter(x => x.filterType === FilterType.ExtensionName).map(v => v.value.toLocaleLowerCase());
const names = query.criteria.filter(x => x.filterType === FilterType.ExtensionName).map(v => v.value ? v.value.toLocaleLowerCase() : undefined);
if (names && names.length > 0) {
filteredExtensions = filteredExtensions.filter(e => e.extensionName && e.publisher.publisherName && names.includes(`${e.publisher.publisherName.toLocaleLowerCase()}.${e.extensionName.toLocaleLowerCase()}`));
}
const searchTexts = query.criteria.filter(x => x.filterType === FilterType.SearchText).map(v => v.value.toLocaleLowerCase());
const searchTexts = query.criteria.filter(x => x.filterType === FilterType.SearchText).map(v => v.value ? v.value.toLocaleLowerCase() : undefined);
if (searchTexts && searchTexts.length > 0) {
searchTexts.forEach(searchText => {
if (searchText !== '@allmarketplace') {
@@ -585,13 +585,13 @@ export class ExtensionGalleryService implements IExtensionGalleryService {
/*
* Checks whether the extension matches the search text
*/
public static isMatchingExtension(extension: IRawGalleryExtension, searchText: string): boolean {
public static isMatchingExtension(extension?: IRawGalleryExtension, searchText?: string): boolean {
if (!searchText) {
return true;
}
let text = searchText.toLocaleLowerCase();
return extension
&& (extension.extensionName && extension.extensionName.toLocaleLowerCase().includes(text) ||
return !!extension
&& !!(extension.extensionName && extension.extensionName.toLocaleLowerCase().includes(text) ||
extension.publisher && extension.publisher.publisherName && extension.publisher.publisherName.toLocaleLowerCase().includes(text) ||
extension.publisher && extension.publisher.displayName && extension.publisher.displayName.toLocaleLowerCase().includes(text) ||
extension.displayName && extension.displayName.toLocaleLowerCase().includes(text) ||

View File

@@ -47,14 +47,26 @@ suite('Extension Gallery Service', () => {
// {{SQL CARBON EDIT}}
test('sortByField', () => {
let a = {
let a: {
extensionId: string | undefined;
extensionName: string | undefined;
displayName: string | undefined;
shortDescription: string | undefined;
publisher: { displayName: string | undefined, publisherId: string | undefined, publisherName: string | undefined; } | undefined;
} = {
extensionId: undefined,
extensionName: undefined,
displayName: undefined,
shortDescription: undefined,
publisher: undefined
};
let b = {
let b: {
extensionId: string | undefined;
extensionName: string | undefined;
displayName: string | undefined;
shortDescription: string | undefined;
publisher: { displayName: string | undefined, publisherId: string | undefined, publisherName: string | undefined; } | undefined;
} = {
extensionId: undefined,
extensionName: undefined,
displayName: undefined,

View File

@@ -222,7 +222,7 @@ export function isValidExtensionVersion(version: string, extensionDesc: IReduced
}
// {{SQL CARBON EDIT}}
return (extensionDesc.engines.azdata && extensionDesc.engines.azdata === '*') || isVersionValid(version, extensionDesc.engines.azdata, notices);
return extensionDesc.engines.azdata ? extensionDesc.engines.azdata === '*' || isVersionValid(version, extensionDesc.engines.azdata, notices) : true;
}
// {{SQL CARBON EDIT}}