2017-09-04 4 views
0

Example.tsImpossible de trouver la fonction dans le fichier de spécification

export class Example{ 

public async initService(Id): Promise<any> { 

//promise logic 

    } 
} 

Example.spec.ts

//imported Example class correctly 

    describe('testing', async() =>{ 
     it('InitService test call', async()=>{ 
      let x = await Example.initService(id:any) //this line displays error as initService does not exist on type 'typeof AnnounceService' 
    }); 
}); 

J'ai importé la classe Exemple correctement mais aussi incapable pour appeler la fonction de Exemple classe dans le Exemple.spec.ts.

+0

Est-ce que' Example' est un service ou un composant? et appelez-vous statiquement? –

Répondre

0

Ceci est une erreur très simple. Vous appelez la méthode sur la fonction de classe elle-même, pas sur un objet du type d'instance de la classe.

Si vous avez l'intention d'appeler la méthode sans exemple, comme vous le faites et votre exemple de code, alors vous devez le marquer comme statique:

export class Example { 
    static async initService(Id) {} 
} 

Si, d'autre part, vous voulez dire en fait pour que ce soit une méthode d'instance, vous devez plutôt créer une instance afin d'appeler la méthode:

export class Example { 
    async initService(Id) {} 
} 

describe('testing', async() => { 
    it('InitService test call', async() => { 
     const x = await new Example().initService(1); 
    }); 
}); 

Enfin, il convient de noter que l'ID texte d'erreur formulé de la manière qu'il est parce que le type de la classe fonction lui-même est écrit comme typeof ClassFunction alors que le type de ses instances s'écrit simplement `ClassFunction