我已经尝试了目标es6,但它给了我很多编译错误。没有目标es6一切都很好,但IDE(工作室代码,webstorm)一直告诉我,找不到名字Promise。这是因为编辑器中的TypeScript检查。
有人有这个错误吗?实际上很烦人。总是有红色的承诺。
TypeScript 2.0.3,WebStorm也用2.0.3检查
答案 0 :(得分:0)
您可以复制所需的lib.es6.d.ts相关部分。
Promise there的定义是:
interface Promise<T> {
then(onfulfilled?: ((value: T) => T | PromiseLike<T>) | undefined | null, onrejected?: ((reason: any) => T | PromiseLike<T>) | undefined | null): Promise<T>;
then<TResult>(onfulfilled: ((value: T) => T | PromiseLike<T>) | undefined | null, onrejected: (reason: any) => TResult | PromiseLike<TResult>): Promise<T | TResult>;
then<TResult>(onfulfilled: (value: T) => TResult | PromiseLike<TResult>, onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): Promise<TResult>;
then<TResult1, TResult2>(onfulfilled: (value: T) => TResult1 | PromiseLike<TResult1>, onrejected: (reason: any) => TResult2 | PromiseLike<TResult2>): Promise<TResult1 | TResult2>;
catch(onrejected?: ((reason: any) => T | PromiseLike<T>) | undefined | null): Promise<T>;
catch<TResult>(onrejected: (reason: any) => TResult | PromiseLike<TResult>): Promise<T | TResult>;
}
PromiseLike的那个:
interface PromiseLike<T> {
then(
onfulfilled?: ((value: T) => T | PromiseLike<T>) | undefined | null,
onrejected?: ((reason: any) => T | PromiseLike<T>) | undefined | null): PromiseLike<T>;
then<TResult>(
onfulfilled: ((value: T) => T | PromiseLike<T>) | undefined | null,
onrejected: (reason: any) => TResult | PromiseLike<TResult>): PromiseLike<T | TResult>;
then<TResult>(
onfulfilled: (value: T) => TResult | PromiseLike<TResult>,
onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): PromiseLike<TResult>;
then<TResult1, TResult2>(
onfulfilled: (value: T) => TResult1 | PromiseLike<TResult1>,
onrejected: (reason: any) => TResult2 | PromiseLike<TResult2>): PromiseLike<TResult1 | TResult2>;
}
把它放在你自己的.d.ts
文件中并使用它。
如果您需要更多部件,请从lib.es6.d.ts
。
答案 1 :(得分:0)
您应该在tsconfig.json
中添加所有必需的声明。在你的情况下它
{
"compilerOptions": {
"lib": ["es6","dom"]
}
}
默认情况下,ts使用包含PromiseLike但不包含Promise
的es5定义答案 2 :(得分:0)
解决方案是:将您的文件添加到tsconfig.json&#34;文件&#34;:
{
"files": [
"./src/your-file.ts",
"./typings/index.d.ts"
]
}
如果您的文件未添加到tsconfig中,IDE无法为其提供类型。
答案 3 :(得分:0)
对我而言我刚刚做了
import { promise } from 'protractor'
一切都很好