TS2683 (TS) 'ceci' a implicitement type "tout", car il ne dispose pas d'un type d'annotation
Je suis confronté à ce problème avec le fichier d'enregistrement de fichier et voudrais savoir comment résoudre ce problème.
Pour l'instant j'ai supprimé ce tapuscrit exception mais j'aimerais savoir comment remédier à ce problème. Voici mon code:
export class BaseResult {
isSuccessful: boolean;
totalRecords: number;
successMessage: string;
reasonForFailure: string;
lastExecutedDateTime: Date;
}
export class Result<T> extends BaseResult {
data: T;
}
export class CollectionResult<T> extends BaseResult {
data: T[];
}
export class PagedCollectionResult<T> extends CollectionResult<T> {
pageNumber: number;
pageSize: number;
filter: string;
pages = function () {
return (this.totalRecords <= 0 || this.pageSize <= 0) ? 0 : Math.ceil(this.totalRecords / this.pageSize);//<--All the **this** keyword shows the error
}
}
- Remplacer
pages = function () {
avecpages() {
- changement de flèche fonction: pages = () =>
- classe syntaxe n'a pas besoin de la
function
ou()=>
notation à déclarer une méthode.
Vous devez vous connecter pour publier un commentaire.
Comme certains commentaires indiqué, votre
this
de référence n'est pas tapé parce que vous êtes à l'aide de lafunction () {}
syntaxe pour définir votre fonction. Lethis
objet à l'intérieur d'une fonction intrinsèquement de typeany
, parce quethis
sera l'appelant de la fonction (inconnaissable au moment de la conception).Si vous modifiez votre syntaxe d'une flèche fonction, comme le
ou tout simplement omettre le mot-clé function et la flèche, comme
puis le
this
objet à l'intérieur de la fonction de référence de l'instance de classethis
à la place du typeany
.Voir le fichier d'enregistrement manuel pour plus d'explication.
this
(par exemple, votre fonction sera appelée par un cadre qui définitthis
à quelque chose de plus raisonnable), vous pouvez dire à la Machine le type dethis
par l'introduction d'un fauxthis
paramètre:callback = function (this: HTMLElement) { … }