From 3f9e857483a61f97094951b57976c4f3118208f1 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Wed, 6 Feb 2019 17:10:52 -0800 Subject: [PATCH] Strict null work --- src/vs/workbench/browser/dnd.ts | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/vs/workbench/browser/dnd.ts b/src/vs/workbench/browser/dnd.ts index a7765e76c20..432b1cb77e5 100644 --- a/src/vs/workbench/browser/dnd.ts +++ b/src/vs/workbench/browser/dnd.ts @@ -60,8 +60,8 @@ export interface IDraggedEditor extends IDraggedResource { export interface ISerializedDraggedEditor { resource: string; - backupResource: string; - viewState: IEditorViewState; + backupResource?: string; + viewState: IEditorViewState | null; } export const CodeDataTransfers = { @@ -71,7 +71,7 @@ export const CodeDataTransfers = { export function extractResources(e: DragEvent, externalOnly?: boolean): Array { const resources: Array = []; - if (e.dataTransfer.types.length > 0) { + if (e.dataTransfer && e.dataTransfer.types.length > 0) { // Check for window-to-window DND if (!externalOnly) { @@ -286,7 +286,7 @@ export class ResourcesDropHandler { // Pass focus to window this.windowService.focusWindow(); - let workspacesToOpen: Promise; + let workspacesToOpen: Promise | undefined; // Open in separate windows if we drop workspaces or just one folder if (workspaces.length > 0 || folders.length === 1) { @@ -319,16 +319,16 @@ export class SimpleFileResourceDragAndDrop extends DefaultDragAndDrop { super(); } - getDragURI(tree: ITree, obj: any): string | undefined { + getDragURI(tree: ITree, obj: any): string | null { const resource = this.toResource(obj); if (resource) { return resource.toString(); } - return undefined; + return null; } - getDragLabel(tree: ITree, elements: any[]): string | undefined { + getDragLabel(tree: ITree, elements: any[]): string | null { if (elements.length > 1) { return String(elements.length); } @@ -338,7 +338,7 @@ export class SimpleFileResourceDragAndDrop extends DefaultDragAndDrop { return basenameOrAuthority(resource); } - return undefined; + return null; } onDragStart(tree: ITree, data: IDragAndDropData, originalEvent: DragMouseEvent): void { @@ -352,7 +352,7 @@ export class SimpleFileResourceDragAndDrop extends DefaultDragAndDrop { } export function fillResourceDataTransfers(accessor: ServicesAccessor, resources: (URI | { resource: URI, isDirectory: boolean })[], event: DragMouseEvent | DragEvent): void { - if (resources.length === 0) { + if (resources.length === 0 || !event.dataTransfer) { return; } @@ -390,7 +390,7 @@ export function fillResourceDataTransfers(accessor: ServicesAccessor, resources: files.forEach(file => { // Try to find editor view state from the visible editors that match given resource - let viewState: IEditorViewState; + let viewState: IEditorViewState | null = null; const textEditorWidgets = editorService.visibleTextEditorWidgets; for (const textEditorWidget of textEditorWidgets) { if (isCodeEditor(textEditorWidget)) { @@ -422,8 +422,8 @@ export class LocalSelectionTransfer { private static readonly INSTANCE = new LocalSelectionTransfer(); - private data: T[]; - private proto: T; + private data?: T[]; + private proto?: T; private constructor() { // protect against external instantiation @@ -444,7 +444,7 @@ export class LocalSelectionTransfer { } } - getData(proto: T): T[] { + getData(proto: T): T[] | undefined { if (this.hasData(proto)) { return this.data; } -- GitLab