2017-09-21 1 views
1

J'ai mon bar.ts comme suit:erreur TS2347: appels de fonction non typées ne peuvent pas accepter des arguments de type

declare var angular:any; 
declare var _:any; 
declare var $:any; 
declare var moment:any; 
declare var ng:any; 
declare var require:any; 

mes bootstrap.ts comme suit:

/// <reference path="./node_modules/@types/angular/index.d.ts" /> 
/// <reference path="./node_modules/@types/lodash/index.d.ts" /> 
/// <reference path="bar.ts" /> 
............. 

Mais quand j'utilise _ comme suivant

this.csSubtitle = _.get<string>(_.find(this.csRadios, { value: this.csRadioValue }), 'label'); 

il jette l'erreur suivante:

erreur TS2347: appels de fonction non typées ne peuvent pas accepter l'argument de type

+0

Pouvez-vous retirer '' de cette ligne? Pourquoi déclarez-vous toutes ces valeurs comme des types 'any'? – jcalz

Répondre

0

La raison pour laquelle cela est arrivé parce que vous essayiez probablement chercher des informations de type en présence d'une directive d'importation, donc l'utilisation nécessite à elle seule ne suffit pas dans ce cas.

Alors disons que vous avez

var Promise = require('es6-promise').Promise; 

Remplacez-le par:

import es6PromiseLib = require('es6-promise'); 
var Promise = es6PromiseLib.Promise; 

En général, vous utilisez des arguments de type si vous voulez avoir la sécurité de type. Donc, c'est une bonne chose que vous spécifiez.