tapuscrit: erreur TS2693: "Promesse" ne se réfère à un type, mais est utilisé en tant que valeur ici

Je suis en train d'utiliser la Machine pour mon AWS Lambda et j'obtiens les erreurs suivantes où jamais je utiliser promesses.

erreur TS2693: "Promesse" ne se réfère à un type, mais est utilisé en tant que valeur ici. 

J'ai essayé d'utiliser les variations suivantes dans le code

À l'aide de la Promesse du constructeur

responsePromise = new Promise((resolve, reject) => {
                    return reject(new Error(`missing is needed data`))
                })

à l'aide de la Promesse.rejeter

responsePromise = Promise.reject(new Error(`Unsupported method "${request.httpMethod}"`));

Versions

Sont les suivantes versions dans mon dev dépendances:

"typescript": "^2.2.2"
"@types/aws-lambda": "0.0.9",
"@types/core-js": "^0.9.40",
"@types/node": "^7.0.12",

Contenu de tsconfig.json

{
    "compileOnSave": true,
    "compilerOptions": {
        "module": "commonjs",
        //"typeRoots" : ["./typings", "./node_modules/@types"],
        "target": "es5",
        //"types" : [ "core-js" ],
        "noImplicitAny": true,
        "strictNullChecks": true,
        "allowJs": true,
        "noEmit": true,
        "alwaysStrict": true,
        "preserveConstEnums": true,
        "sourceMap": true,
        "outDir": "dist",
        "moduleResolution": "Node",
        "declaration": true,
        "lib": [
            "es6"
        ]
    },
    "include": [
        "index.ts",
        "lib/**/*.ts"
    ],
    "exclude": [
        "node_modules",
        "**/*.spec.ts"
    ]
}

Je suis en utilisant grunt-ts avec la configuration suivante pour l'exécution des ts tâche.

ts: {
            app: {
                tsconfig: {
                    tsconfig: "./tsconfig.json",
                    ignoreSettings: true
                }
            },
...

J'ai essayé avec la solution mentionnée dans J'obtiens: [ts] "Promesse" ne se réfère à un type, mais est utilisé en tant que valeur ici mais pas de chance.

  • Pas de valeur de retour est nécessaire pour la fonction de callback passé en à la Promesse du constructeur. Juste se débarrasser de return.
  • Entendez-vous comme cela? responsePromise = new Promise((resolve, reject) => { reject(new Error("missing is needed data"))}) Je l'ai essayé. Mais il n'a pas hep avec le problème.
  • Oui. JavaScript ne se soucie pas si vous retourner une valeur ou pas, mais elle ne fait pas attention. Tapuscrit, cependant, ne de soins.
  • L'a obtenu. Mais pourquoi ne tsc ne parvient pas à compiler toute la saveur de Promose.résoudre ou d'une Promesse.rejeter?
  • Que, je ne sais pas. Comment exactement est responsePromise déclaré?
  • J'ai essayé de le définir comme ça. let responsePromise: Promise<void> | Promise<any> | Promise<Error> = Promise.reject('Unknown error'); . mais il n'a pas aidé.
  • noEmit? typescriptlang.org/docs/handbook/compiler-options.html
  • Pointu, si la fonction doit renvoyer une valeur, le "retour" mot-clé est certainement nécessaire. Je suis en cours d'exécution dans ce problème aussi, et c'est certainement sur le fait que la Machine est d'avoir des problèmes de manipulation de l'objet promise correctement, et n'a rien à voir avec une quelconque kalyanvgopal est mauvais parce que son code est très bien.
  • pour ceux qui essaient de tout ci-dessous les réponses et ne trouvant pas de chance, assurez-vous que votre tsconfig.json est dans le bon répertoire! le mien était dans un répertoire ci-dessous le fichier qui me donnait le ts2693 erreur.

InformationsquelleAutor kalyanvgopal | 2017-03-30