Skip to content

Commit c57eb55

Browse files
committed
bug #247 Fix Typescript alerts (tgalopin)
This PR was merged into the 2.x branch. Discussion ---------- Fix Typescript alerts | Q | A | ------------- | --- | Bug fix? | yes | New feature? | - | Tickets | - | License | MIT Fix Typescript alerts in controllers. Commits ------- b3b836b Fix Typescript alerts
2 parents db824b2 + b3b836b commit c57eb55

File tree

7 files changed

+42
-11
lines changed

7 files changed

+42
-11
lines changed

src/Chartjs/Resources/assets/src/controller.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import { Controller } from '@hotwired/stimulus';
1313
import Chart from 'chart.js/auto';
1414

1515
export default class extends Controller {
16+
readonly viewValue: any;
17+
1618
static values = {
1719
view: Object,
1820
};

src/Cropperjs/Resources/assets/src/controller.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ import Cropper from 'cropperjs';
1414
import CropEvent = Cropper.CropEvent;
1515

1616
export default class CropperController extends Controller {
17+
readonly publicUrlValue: string;
18+
readonly optionsValue: object;
19+
1720
static values = {
1821
publicUrl: String,
1922
options: Object,

src/Dropzone/Resources/assets/src/controller.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,13 @@
1212
import { Controller } from '@hotwired/stimulus';
1313

1414
export default class extends Controller {
15+
readonly inputTarget: HTMLInputElement;
16+
readonly placeholderTarget: HTMLDivElement;
17+
readonly previewTarget: HTMLDivElement;
18+
readonly previewClearButtonTarget: HTMLButtonElement;
19+
readonly previewFilenameTarget: HTMLDivElement;
20+
readonly previewImageTarget: HTMLDivElement;
21+
1522
static targets = ['input', 'placeholder', 'preview', 'previewClearButton', 'previewFilename', 'previewImage'];
1623

1724
connect() {
@@ -39,7 +46,7 @@ export default class extends Controller {
3946
this._dispatchEvent('dropzone:clear');
4047
}
4148

42-
onInputChange(event) {
49+
onInputChange(event: any) {
4350
const file = event.target.files[0];
4451
if (typeof file === 'undefined') {
4552
return;
@@ -62,23 +69,23 @@ export default class extends Controller {
6269
this._dispatchEvent('dropzone:change', file);
6370
}
6471

65-
_populateImagePreview(file) {
72+
_populateImagePreview(file: Blob) {
6673
if (typeof FileReader === 'undefined') {
6774
// FileReader API not available, skip
6875
return;
6976
}
7077

7178
const reader = new FileReader();
7279

73-
reader.addEventListener('load', (event) => {
80+
reader.addEventListener('load', (event: any) => {
7481
this.previewImageTarget.style.display = 'block';
7582
this.previewImageTarget.style.backgroundImage = 'url("' + event.target.result + '")';
7683
});
7784

7885
reader.readAsDataURL(file);
7986
}
8087

81-
_dispatchEvent(name: string, payload: any) {
88+
_dispatchEvent(name: string, payload: any = {}) {
8289
this.element.dispatchEvent(new CustomEvent(name, { detail: payload }));
8390
}
8491
}

src/LazyImage/Resources/assets/src/controller.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,25 @@
1212
import { Controller } from '@hotwired/stimulus';
1313

1414
export default class extends Controller {
15+
readonly srcValue: string;
16+
readonly srcsetValue: any;
17+
readonly hasSrcsetValue: boolean;
18+
1519
static values = {
1620
src: String,
1721
srcset: Object,
1822
};
1923

2024
connect() {
2125
const hd = new Image();
26+
const element = this.element as HTMLImageElement;
2227

2328
const srcsetString = this._calculateSrcsetString();
2429

2530
hd.addEventListener('load', () => {
26-
this.element.src = this.srcValue;
31+
element.src = this.srcValue;
2732
if (srcsetString) {
28-
this.element.srcset = srcsetString;
33+
element.srcset = srcsetString;
2934
}
3035
this._dispatchEvent('lazy-image:ready', { image: hd });
3136
});
@@ -43,7 +48,7 @@ export default class extends Controller {
4348
return '';
4449
}
4550

46-
const sets = Object.keys(this.srcsetValue).map((size) => {
51+
const sets = Object.keys(this.srcsetValue).map((size: string) => {
4752
return `${this.srcsetValue[size]} ${size}`;
4853
});
4954

src/LiveComponent/assets/src/live_controller.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ export default class extends Controller {
190190
}
191191

192192
_getValueFromElement(element: HTMLElement) {
193-
return element.dataset.value || element.value;
193+
return element.dataset.value || (element as any).value;
194194
}
195195

196196
_updateModelFromElement(element: HTMLElement, value: string, shouldRender: boolean) {
@@ -360,7 +360,7 @@ export default class extends Controller {
360360
if (typeof Turbo !== 'undefined') {
361361
Turbo.visit(response.headers.get('Location'));
362362
} else {
363-
window.location.href = response.headers.get('Location');
363+
window.location.href = response.headers.get('Location') || '';
364364
}
365365

366366
return;
@@ -609,7 +609,7 @@ export default class extends Controller {
609609
let callback: () => void;
610610
if (actionName.charAt(0) === '$') {
611611
callback = () => {
612-
this[actionName]();
612+
(this as any)[actionName]();
613613
}
614614
} else {
615615
callback = () => {

src/Swup/Resources/assets/src/controller.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,19 @@ import SwupFadeTheme from '@swup/fade-theme';
1717
import SwupSlideTheme from '@swup/slide-theme';
1818

1919
export default class extends Controller {
20+
animateHistoryBrowsingValue: boolean;
21+
hasAnimateHistoryBrowsingValue: boolean;
22+
animationSelectorValue: string;
23+
hasAnimationSelectorValue: boolean;
24+
cacheValue: boolean;
25+
hasCacheValue: boolean;
26+
containersValue: string[];
27+
hasContainersValue: boolean;
28+
linkSelectorValue: string;
29+
hasLinkSelectorValue: boolean;
30+
themeValue: string;
31+
debugValue: boolean;
32+
2033
static values = {
2134
animateHistoryBrowsing: Boolean,
2235
animationSelector: String,
@@ -30,7 +43,7 @@ export default class extends Controller {
3043
};
3144

3245
connect() {
33-
const options = {
46+
const options: any = {
3447
containers: ['#swup'],
3548
plugins: ['slide' === this.themeValue ? new SwupSlideTheme() : new SwupFadeTheme(), new SwupFormsPlugin()],
3649
};

tsconfig.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"noUnusedLocals": true,
77
"rootDir": "src",
88
"strict": true,
9+
"strictPropertyInitialization": false,
910
"target": "es2017",
1011
"removeComments": true,
1112
"outDir": "dist",

0 commit comments

Comments
 (0)