Browse Source

2.6: noImplicitThis.

Frederic G. MARAND 5 years ago
parent
commit
6a7afa7844
3 changed files with 46 additions and 40 deletions
  1. 32 32
      .idea/workspace.xml
  2. 13 7
      course/src/app/reports.component.ts
  3. 1 1
      course/tsconfig.json

+ 32 - 32
.idea/workspace.xml

@@ -2,7 +2,7 @@
 <project version="4">
   <component name="ChangeListManager">
     <list default="true" id="c6f02f4e-af06-43d1-8bc0-507af01d0573" name="Default Changelist" comment="">
-      <change beforePath="$PROJECT_DIR$/course/src/app/services/reportItem.service.ts" beforeDir="false" afterPath="$PROJECT_DIR$/course/src/app/services/reportItem.service.ts" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/course/src/app/reports.component.ts" beforeDir="false" afterPath="$PROJECT_DIR$/course/src/app/reports.component.ts" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/course/tsconfig.json" beforeDir="false" afterPath="$PROJECT_DIR$/course/tsconfig.json" afterDir="false" />
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
@@ -26,8 +26,8 @@
           <entry key="css" value="1" />
           <entry key="gitignore" value="2" />
           <entry key="groovy" value="1" />
-          <entry key="json" value="8" />
-          <entry key="ts" value="14" />
+          <entry key="json" value="9" />
+          <entry key="ts" value="15" />
           <entry key="txt" value="1" />
         </counts>
       </usages-collector>
@@ -37,21 +37,21 @@
           <entry key="JSON" value="3" />
           <entry key="PLAIN_TEXT" value="2" />
           <entry key="Scratch" value="3" />
-          <entry key="TypeScript" value="14" />
-          <entry key="tsconfig" value="5" />
+          <entry key="TypeScript" value="15" />
+          <entry key="tsconfig" value="6" />
         </counts>
       </usages-collector>
       <usages-collector id="statistics.file.extensions.edit">
         <counts>
-          <entry key="json" value="29" />
-          <entry key="ts" value="109" />
+          <entry key="json" value="33" />
+          <entry key="ts" value="336" />
         </counts>
       </usages-collector>
       <usages-collector id="statistics.file.types.edit">
         <counts>
           <entry key="JSON" value="5" />
-          <entry key="TypeScript" value="109" />
-          <entry key="tsconfig" value="24" />
+          <entry key="TypeScript" value="336" />
+          <entry key="tsconfig" value="28" />
         </counts>
       </usages-collector>
       <usages-collector id="statistics.js.language.service.starts">
@@ -69,10 +69,10 @@
   <component name="FileEditorManager">
     <leaf>
       <file pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/course/src/app/services/reportItem.service.ts">
+        <entry file="file://$PROJECT_DIR$/course/src/app/reports.component.ts">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="244">
-              <caret line="61" column="46" lean-forward="true" selection-start-line="61" selection-start-column="46" selection-end-line="61" selection-end-column="46" />
+            <state relative-caret-position="188">
+              <caret line="34" column="3" selection-start-line="34" selection-start-column="3" selection-end-line="34" selection-end-column="3" />
             </state>
           </provider>
         </entry>
@@ -96,11 +96,11 @@
         <option value="$PROJECT_DIR$/course/src/app/create-report-item.component.ts" />
         <option value="$PROJECT_DIR$/course/src/app/app.module.ts" />
         <option value="$PROJECT_DIR$/course/src/app/app-routing.module.ts" />
-        <option value="$PROJECT_DIR$/course/src/app/reports.component.ts" />
         <option value="$PROJECT_DIR$/course/src/app/edit-report.component.ts" />
         <option value="$PROJECT_DIR$/course/src/app/services/messenger.service.ts" />
-        <option value="$PROJECT_DIR$/course/tsconfig.json" />
         <option value="$PROJECT_DIR$/course/src/app/services/reportItem.service.ts" />
+        <option value="$PROJECT_DIR$/course/tsconfig.json" />
+        <option value="$PROJECT_DIR$/course/src/app/reports.component.ts" />
       </list>
     </option>
   </component>
@@ -266,19 +266,19 @@
       <option name="presentableId" value="Default" />
       <updated>1535304175302</updated>
       <workItem from="1535304176395" duration="75000" />
-      <workItem from="1535304274687" duration="4774000" />
+      <workItem from="1535304274687" duration="5261000" />
     </task>
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="4849000" />
+    <option name="totallyTimeSpent" value="5336000" />
   </component>
   <component name="ToolWindowManager">
     <frame x="0" y="23" width="1440" height="877" extended-state="6" />
     <editor active="true" />
     <layout>
       <window_info id="Favorites" order="0" side_tool="true" />
-      <window_info id="Structure" order="1" side_tool="true" visible="true" weight="0.1795422" />
+      <window_info active="true" id="Structure" order="1" side_tool="true" visible="true" weight="0.1795422" />
       <window_info id="npm" order="2" side_tool="true" />
       <window_info anchor="bottom" id="TypeScript" />
       <window_info anchor="bottom" id="Event Log" order="0" side_tool="true" />
@@ -287,7 +287,7 @@
       <window_info anchor="bottom" id="Metrics" order="3" />
       <window_info anchor="bottom" id="Message" order="4" />
       <window_info anchor="bottom" id="Find" order="5" weight="0.3299363" />
-      <window_info active="true" anchor="bottom" id="Run" order="6" visible="true" weight="0.3299363" />
+      <window_info anchor="bottom" id="Run" order="6" visible="true" weight="0.3299363" />
       <window_info anchor="bottom" id="Debug" order="7" weight="0.4" />
       <window_info anchor="bottom" id="Cvs" order="8" weight="0.25" />
       <window_info anchor="bottom" id="Inspection" order="9" weight="0.4" />
@@ -413,38 +413,38 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/course/src/app/reports.component.ts">
+    <entry file="file://$PROJECT_DIR$/course/src/app/edit-report.component.ts">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="191">
-          <caret line="26" column="33" selection-start-line="26" selection-start-column="33" selection-end-line="26" selection-end-column="33" />
+        <state relative-caret-position="251">
+          <caret line="25" column="34" lean-forward="true" selection-start-line="25" selection-start-column="34" selection-end-line="25" selection-end-column="34" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/course/src/app/edit-report.component.ts">
+    <entry file="file://$PROJECT_DIR$/course/src/app/services/messenger.service.ts">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="251">
-          <caret line="25" column="34" lean-forward="true" selection-start-line="25" selection-start-column="34" selection-end-line="25" selection-end-column="34" />
+        <state relative-caret-position="285">
+          <caret line="18" lean-forward="true" selection-start-line="18" selection-end-line="18" />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/course/tsconfig.json">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="300">
-          <caret line="20" column="20" lean-forward="true" selection-start-line="20" selection-start-column="20" selection-end-line="20" selection-end-column="20" />
+        <state relative-caret-position="75">
+          <caret line="5" column="35" lean-forward="true" selection-start-line="5" selection-start-column="35" selection-end-line="5" selection-end-column="35" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/course/src/app/services/messenger.service.ts">
+    <entry file="file://$PROJECT_DIR$/course/src/app/services/reportItem.service.ts">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="285">
-          <caret line="18" lean-forward="true" selection-start-line="18" selection-end-line="18" />
+        <state relative-caret-position="334">
+          <caret line="67" column="44" lean-forward="true" selection-start-line="67" selection-start-column="44" selection-end-line="67" selection-end-column="44" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/course/src/app/services/reportItem.service.ts">
+    <entry file="file://$PROJECT_DIR$/course/src/app/reports.component.ts">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="244">
-          <caret line="61" column="46" lean-forward="true" selection-start-line="61" selection-start-column="46" selection-end-line="61" selection-end-column="46" />
+        <state relative-caret-position="188">
+          <caret line="34" column="3" selection-start-line="34" selection-start-column="3" selection-end-line="34" selection-end-column="3" />
         </state>
       </provider>
     </entry>

+ 13 - 7
course/src/app/reports.component.ts

@@ -1,12 +1,13 @@
-import { Component} from '@angular/core';
-import { DataSource } from '@angular/cdk/collections';
-import { Observable } from 'rxjs/Observable';
+import {Component, Inject} from '@angular/core';
+import {DataSource} from '@angular/cdk/collections';
+import {Observable} from 'rxjs/Observable';
 import 'rxjs/add/observable/merge';
 import 'rxjs/add/observable/of';
 import 'rxjs/add/operator/map';
 import 'rxjs/add/operator/take';
-import { Report, ReportDataService } from './services/reportData.service';
-import { ActivatedRoute, ParamMap } from '@angular/router';
+import {Report, ReportDataService} from './services/reportData.service';
+import {ActivatedRoute, ParamMap} from '@angular/router';
+import {WindowService} from "./services/window.service";
 
 export class ReportsDataSource extends DataSource<any> {
 
@@ -29,6 +30,10 @@ function mapUser(params: ParamMap): boolean {
     return userName.indexOf('admin') > -1;
 }
 
+/**
+ *  Special syntax: using "this" as first argument does NOT add a first
+ * parameter, but specifies the type of "this" within the function.
+ */
 function toggleApprovedStyle(this: HTMLElement, approved: boolean) {
     if (approved && this.className.indexOf('approved') === -1) {
         this.className += ' approved';
@@ -48,7 +53,8 @@ export class ReportsComponent {
     displayedColumns = ['id', 'description', 'date', 'amount', 'approved', 'actions'];
 
   constructor(private route: ActivatedRoute,
-        private reportDataService: ReportDataService) {
+        private reportDataService: ReportDataService,
+        @Inject(WindowService) private _window: Window) {
     this.reports = new ReportsDataSource(reportDataService);
         this.isAdmin = this.route.queryParamMap.map(mapUser);
     }
@@ -65,7 +71,7 @@ export class ReportsComponent {
 
 
     private toggleApprovedStyle(reportId: number, approved: boolean) {
-        setTimeout(function () {
+      setTimeout(() => {
             const row = this._window.document.getElementById(`report$${reportId}`).closest("mat-row");
             toggleApprovedStyle.call(row, approved);
         }, 50);

+ 1 - 1
course/tsconfig.json

@@ -12,7 +12,7 @@
     "noFallthroughCasesInSwitch": true,
     "noImplicitAny": false,
     "noImplicitReturns": false,
-    "noImplicitThis": false,
+    "noImplicitThis": true,
     "noUnusedLocals": true,
     "noUnusedParameters": true,
     "outDir": "./dist/out-tsc",