Comportement attendu:
Je m'attends à ce que mon code se compile sans erreur
Et en espérant que la déclaration d'importation fonctionne
Comportement réel:
Lorsque j'exécute tsc app.ts, j'obtiens cette erreur:
../node_modules/@types/bluebird/index.d.ts:750:72 - erreur TS2583: Impossible de trouver le nom 'Map'. Avez-vous besoin de changer votre bibliothèque cible? Essayez de changer l'option du compilateur lib
en es2015 ou version ultérieure.
750 accessoires statiques
J'obtiens également une autre erreur dans mon éditeur de code:
Le fichier '/Users/harry.gothold/Documents/api-call-weather/src/app.ts' n'est pas un module.
Voici le test que j'essaye d'exécuter:
''
importer * comme application depuis '../src/app';
// importer * en tant que chai depuis 'chai';
// importer {résultat} de '../app';
var chai = require ('chai');
var sinon = require ('sinon');
const expect = chai.expect;
décrire ('résultat', fonction () {
it ('devrait être appelé avec weatherDescription', (done) => {
expect (result) .to.eventually.equal ('ciel clair');
Fini();
});
}); `
Ceci est le code ts original:
`let request = require ('request');
laissez promise = require ('bluebird');
function getData () {
retourner une nouvelle promesse ((résoudre: tout, rejeter: tout) => {
request ('https://api.openweathermap.org/data/2.5/forecast?id=2643743&APPID=99eaec08987344591490f9a6ee213155', {json: true},
(err: any, res: any, body: any) => {
résoudre (body.list [0] .weather [0] .description);
rejeter (err, 'Désolé, une erreur s'est produite lors de la récupération des données');
});
});
};
résultat de la fonction (weatherDescription: any) {
console.log ( The weather today is ${weatherDescription}
);
}
getData ()
.then ((weatherDescription: any) => {
résultat (weatherDescription)
})
.catch ((err: any) => {
jeter (err)
});
module.exports = {
getData: function () {},
résultat: function () {}
} `
Et voici mon fichier tsconfig:
«{
"compilerOptions": {
/ * Options de base /"target": "es6", / Spécifiez la version cible d'ECMAScript: 'ES3' (par défaut), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018' ou 'ESNEXT'. /"module": "commonjs", / Spécifiez la génération du code du module: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015' ou 'ESNext'. /"lib": ["es5", "es6", "dom"], / Spécifiez les fichiers de bibliothèque à inclure dans la compilation. /// "allowJs": true, / Autorise la compilation des fichiers javascript. /// "checkJs": true, / Signaler les erreurs dans les fichiers .js. /// "jsx": "preserve", / Spécifie la génération de code JSX: 'conserve', 'react-native' ou 'react'. /// "declaration": true, / Génère le fichier '.d.ts' correspondant. /// "declarationMap": true, / Génère un sourcemap pour chaque fichier '.d.ts' correspondant. /// "sourceMap": true, / Génère le fichier '.map' correspondant. /// "outFile": "./", / Concatène et émet la sortie dans un seul fichier. /// "outDir": "./", / Redirige la structure de sortie vers le répertoire. /// "rootDir": "./", / Spécifiez le répertoire racine des fichiers d'entrée. Utilisez pour contrôler la structure du répertoire de sortie avec --outDir. /// "composite": true, / Activer la compilation du projet /// "removeComments": true, / N'émet pas de commentaires en sortie. /// "noEmit": true, / N'émet pas de sorties. /// "importHelpers": true, / Import émet des helpers depuis 'tslib'. /// "downlevelIteration": true, / Fournit un support complet pour les itérables dans 'for-of', diffusion et déstructuration lors du ciblage de 'ES5' ou 'ES3'. /// "isolatedModules": true, / Transpilez chaque fichier comme un module séparé (similaire à 'ts.transpileModule'). * /
/* Strict Type-Checking Options */
"strict": true, /* Enable all strict type-checking options. */
// "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */
// "strictNullChecks": true, /* Enable strict null checks. */
// "strictFunctionTypes": true, /* Enable strict checking of function types. */
// "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */
// "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */
// "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */
/* Additional Checks */
// "noUnusedLocals": true, /* Report errors on unused locals. */
// "noUnusedParameters": true, /* Report errors on unused parameters. */
// "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */
// "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */
/* Module Resolution Options */
// "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
// "baseUrl": "./", /* Base directory to resolve non-absolute module names. */
// "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
// "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */
// "typeRoots": [], /* List of folders to include type definitions from. */
// "types": [], /* Type declaration files to be included in compilation. */
// "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
"esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
// "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */
/* Source Map Options */
// "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */
// "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
// "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */
// "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */
/* Experimental Options */
// "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */
// "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */
}
} `
Veuillez adresser des questions comme celle-ci à Stack Overflow.