''无极'仅指类型,但在此处用作值

时间:2017-08-07 14:47:52

标签: angular typescript angular-promise

我尝试在我的自定义验证器中使用对我的自定义验证器的承诺,这是我在单独的打字稿文件之后创建的

usernameValidators.ts

import { Control } from 'angular2/common';

export class UsernameValidators {

    static shouldBeUnique(control: Control){
        return new Promise((resolve, reject) => {
            setTimeout(function(){
                if(control.value == "mosh")
                    resolve({ shouldBeUnique: true });

                else
                    resolve(null);


            }, 1000);
        });
    }
}

我正在使用VS代码开发此代码,此处我在承诺下有红色波浪线,一旦我转到问题标签,我就能看到

以下错误

enter image description here

如何解决这个问题。

1 个答案:

答案 0 :(得分:4)

您的问题是您指定了es5作为目标,但es5没有原生Promise实施,因此您还需要包含某种提供的垫片实施。

最简单的解决方案应该包括" es2015.Promise" tsconfig.json中的库:

{
  "compilerOptions": {
    "target": "es5",
    "module": "system",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false,
    "lib": ["es2015.promise", "dom"]
  },
  "exclude": [
    "node_modules",
    "typings/main",
    "typings/main.d.ts"
  ]
}