diff --git a/frontend/src/metabase/dashboard/components/DashCard.jsx b/frontend/src/metabase/dashboard/components/DashCard.jsx
index af04185b1d7fcf2d1256bdfdcaabf537ac90ad1b..dcb4686c84073c8151c5bbb66c5f466dde513e12 100644
--- a/frontend/src/metabase/dashboard/components/DashCard.jsx
+++ b/frontend/src/metabase/dashboard/components/DashCard.jsx
@@ -135,7 +135,7 @@ export default class DashCard extends Component {
                     replacementContent={isEditingParameter && <DashCardParameterMapper dashcard={dashcard} />}
                     metadata={metadata}
                     onChangeCardAndRun={(card: UnsavedCard|Card) => {
-                        this.props.navigateToNewCard(card, dashcard)
+                        navigateToNewCard(card, dashcard)
                     }}
                 />
             </div>
diff --git a/frontend/src/metabase/dashboard/hoc/DashboardControls.jsx b/frontend/src/metabase/dashboard/hoc/DashboardControls.jsx
index d6b766826812a5933ee1e8f8d8bb3bb7c0f6c64d..3651bfac14ac23ad3a1687da17bf7e39218dfc7d 100644
--- a/frontend/src/metabase/dashboard/hoc/DashboardControls.jsx
+++ b/frontend/src/metabase/dashboard/hoc/DashboardControls.jsx
@@ -38,7 +38,7 @@ export default (ComposedComponent: ReactClass<any>) =>
         class extends Component<*, Props, State> {
             static displayName = "DashboardControls["+(ComposedComponent.displayName || ComposedComponent.name)+"]";
 
-            state = {
+            state: State = {
                 isFullscreen: false,
                 isNightMode: false,
 
diff --git a/frontend/src/metabase/meta/Card.spec.js b/frontend/src/metabase/meta/Card.spec.js
index 3d57d40c659bc8bcb6707b76a012aee64fe1614a..a29221001721ebc925d2429b254638e41378cbbb 100644
--- a/frontend/src/metabase/meta/Card.spec.js
+++ b/frontend/src/metabase/meta/Card.spec.js
@@ -1,6 +1,6 @@
 import * as Card from "./Card";
 
-import { assocIn, dissoc } from "icepick";
+import { assocIn } from "icepick";
 
 describe("metabase/meta/Card", () => {
     describe("questionUrlWithParameters", () => {
diff --git a/frontend/src/metabase/meta/types/Visualization.js b/frontend/src/metabase/meta/types/Visualization.js
index 90732168d769a662c75af03f5a44f6b2ef33d947..b191504a37be136bf07ac649b06956610ca3a220 100644
--- a/frontend/src/metabase/meta/types/Visualization.js
+++ b/frontend/src/metabase/meta/types/Visualization.js
@@ -29,7 +29,7 @@ export type DimensionValue = {
 
 export type ClickObject = {
     value?: Value,
-    column: Column,
+    column?: Column,
     dimensions?: DimensionValue[],
     event?: MouseEvent,
     element?: HTMLElement,
diff --git a/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js b/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js
index 20b4a5cae0fc176371f84984d7213a6b0a979f99..58ac0a7970c20ce1b168552eaa1f79627e7b2a86 100644
--- a/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js
+++ b/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js
@@ -35,7 +35,7 @@ import { parseTimestamp } from "metabase/lib/time";
 
 import { datasetContainsNoResults } from "metabase/lib/dataset";
 
-import type { Series } from "metabase/meta/types/Visualization"
+import type { Series, ClickObject } from "metabase/meta/types/Visualization"
 
 const MIN_PIXELS_PER_TICK = { x: 100, y: 32 };
 const BAR_PADDING_RATIO = 0.2;
@@ -380,7 +380,7 @@ function applyChartTooltips(chart, series, isStacked, isScalarSeries, onHoverCha
                     const card = series[seriesIndex].card;
                     const isSingleSeriesBar = this.classList.contains("bar") && series.length === 1;
 
-                    let clicked;
+                    let clicked: ?ClickObject;
                     if (Array.isArray(d.key)) { // scatter
                         clicked = {
                             value: d.key[2],
diff --git a/frontend/src/metabase/visualizations/lib/table.js b/frontend/src/metabase/visualizations/lib/table.js
index 686b7949aaf4f6435fbc8606c8d1e4fb9f47484a..3e05c3cb8278037c17d38b37e09456021b142138 100644
--- a/frontend/src/metabase/visualizations/lib/table.js
+++ b/frontend/src/metabase/visualizations/lib/table.js
@@ -13,11 +13,13 @@ export function getTableCellClickedObject(data: DatasetData, rowIndex: number, c
     if (isPivoted) {
         // if it's a pivot table, the first column is
         if (columnIndex === 0) {
+            // $FlowFixMe: _dimension
             return row._dimension;
         } else {
             return {
                 value,
                 column,
+                // $FlowFixMe: _dimension
                 dimensions: [row._dimension, column._dimension]
             };
         }
diff --git a/frontend/src/metabase/visualizations/lib/tooltip.js b/frontend/src/metabase/visualizations/lib/tooltip.js
index b3ea550dc68bd58f4569e21dad4e23d61f9837b7..dbc72ca44b4722dd264d4364e67b7f73cf07393e 100644
--- a/frontend/src/metabase/visualizations/lib/tooltip.js
+++ b/frontend/src/metabase/visualizations/lib/tooltip.js
@@ -15,7 +15,7 @@ function getParentWithClass(element, className) {
 }
 
 // HACK: This determines the index of the series the provided element belongs to since DC doesn't seem to provide another way
-export function determineSeriesIndexFromElement(element, isStacked) {
+export function determineSeriesIndexFromElement(element, isStacked): number {
     if (isStacked) {
         if (element.classList.contains("dot")) {
             // .dots are children of dc-tooltip
diff --git a/frontend/src/metabase/visualizations/visualizations/PieChart.jsx b/frontend/src/metabase/visualizations/visualizations/PieChart.jsx
index 03ed47642eec01219390f72f35f7d753043b706a..73cc1b27ae737e7c4325093627a3154dd3f7f164 100644
--- a/frontend/src/metabase/visualizations/visualizations/PieChart.jsx
+++ b/frontend/src/metabase/visualizations/visualizations/PieChart.jsx
@@ -177,17 +177,16 @@ export default class PieChart extends Component<*, Props, *> {
             value = formatMetric(total);
         }
 
-        const getSliceClickObject = ({ index, event }) => ({
+        const getSliceClickObject = (index) => ({
             value:      slices[index].value,
             column:     cols[metricIndex],
             dimensions: [{
                 value: slices[index].key,
                 column: cols[dimensionIndex],
-            }],
-            event:      event
+            }]
         })
 
-        const isClickable = onVisualizationClick && visualizationIsClickable(getSliceClickObject({ index: 0 }));
+        const isClickable = onVisualizationClick && visualizationIsClickable(getSliceClickObject(0));
         const getSliceIsClickable = (index) => isClickable && slices[index] !== otherSlice;
 
         return (
@@ -216,10 +215,10 @@ export default class PieChart extends Component<*, Props, *> {
                                         onMouseLeave={() => onHoverChange && onHoverChange(null)}
                                         className={cx({ "cursor-pointer": getSliceIsClickable(index) })}
                                         onClick={getSliceIsClickable(index) && ((e) =>
-                                            onVisualizationClick(getSliceClickObject({
-                                                index,
+                                            onVisualizationClick({
+                                                ...getSliceClickObject(index),
                                                 event: e.nativeEvent
-                                            }))
+                                            })
                                         )}
                                     />
                                 )}