【发布时间】:2017-08-16 12:23:45
【问题描述】:
我正在学习 Angular2 课程并继续学习。到目前为止,我为所有其他练习所做的一切都运行良好,直到我开始创建这个自定义验证器和这个 Promise 代码。我不明白为什么现在会发生这种情况。
我明白了:[ts] 'Promise' 仅指一种类型,但在这里用作值。
似乎无法解决此问题。即使没有添加 setTimeout 函数,我也会收到错误消息。
根据其他人的建议。我添加到 tsconfig.json 中: “编译器选项”:{ ... “类型”:[“核心-js”] }
但我仍然得到错误。
使用 Visual Studio 代码:版本 1.10.1。 操作系统:Windows 10 专业版。
这是我的代码:
import {Control} from 'angular2/common';
export class UsernameValidators
{
static shouldBeUnique(control: Control)
{
return new Promise((resolve, reject) =>
{
setTimeout(function()
{
if (control.value == "Dan")
resolve({ shouldBeUnique: true });
else
resolve(null);
}, 1000);
});
}
}
这是我正在学习的课程和我被指示要做的事情的屏幕截图。智能感知与我的不同。它工作正常,他们没有得到我得到的错误。
这是课程的最终结果。
【问题讨论】:
-
我看到你在 VSCode repo 上的一个线程中问过这个问题(我假设是你,因为问题与这里的字面意思相同)。您是否尝试过 npm 解决方案?需要编译成 ES6 吗?
-
不,我没有在那个线程上问这个。然而,我确实在那里看到了类似的东西。 github.com/Microsoft/vscode/issues/21968
-
不,我没有尝试 npm 解决方案,因为我是新手,因此犹豫不决。我只是在学习这方面的课程并继续学习。但是,我确实尝试了向 tsconfig.json 文件添加条目的建议。但这并没有解决它,所以我退出了。
-
是的,实际上我确实在那个线程上问过这个问题。我忘了我确实忽略了上面关于那个的评论。
-
您是否尝试在
tsconfig.jsoncompilerOptions 中设置lib:["es6"]?
标签: angular