导出接口出错
Error exporting interface
如果我导入一个接口,流程无法识别它,但如果接口在同一个文件中声明,它会按预期工作。
工作示例:
interface Action {
execute(): Promise < any > ;
}
class CreateJuridicalPerson {
constructor() {}
static create() {
return new CreateJuridicalPerson();
}
}
(new CreateJuridicalPerson: Action);
//[flow] [flow] property `execute` of Action (Property not found in CreateJuridicalPerson)
失败示例:
Action.js:
interface Action {
execute(): Promise < any > ;
}
export default Action;
CreateJurdicalPerson.js:
import Action from './Action'
class CreateJuridicalPerson {
constructor() {}
static create() {
return new CreateJuridicalPerson();
}
}
(new CreateJuridicalPerson: Action);
//quiet...
您的代码无效并引发以下错误
src/Action.js:7
7: export default Action;
^^^^^^ Action. type referenced from value position
3: interface Action {
^ type Action
如果您使用的是 Nuclide 并且没有看到错误,请尝试从命令行 运行 flow check
。问题是类型和接口必须用 export type
或 export interface
导出,然后用 import type
导入
Action.js
// @flow
export interface Action {
execute(): Promise<any>;
}
index.js
// @flow
import type { Action } from './Action'
class CreateJuridicalPerson {
constructor() {}
static create() {
return new CreateJuridicalPerson()
}
}
(new CreateJuridicalPerson: Action)
src/index.js:12
12: (new CreateJuridicalPerson: Action)
^^^^^^ property `execute` of Action. Property not found in
12: (new CreateJuridicalPerson: Action)
^^^^^^^^^^^^^^^^^^^^^^^^^ CreateJuridicalPerson
如果我导入一个接口,流程无法识别它,但如果接口在同一个文件中声明,它会按预期工作。
工作示例:
interface Action {
execute(): Promise < any > ;
}
class CreateJuridicalPerson {
constructor() {}
static create() {
return new CreateJuridicalPerson();
}
}
(new CreateJuridicalPerson: Action);
//[flow] [flow] property `execute` of Action (Property not found in CreateJuridicalPerson)
失败示例:
Action.js:
interface Action {
execute(): Promise < any > ;
}
export default Action;
CreateJurdicalPerson.js:
import Action from './Action'
class CreateJuridicalPerson {
constructor() {}
static create() {
return new CreateJuridicalPerson();
}
}
(new CreateJuridicalPerson: Action);
//quiet...
您的代码无效并引发以下错误
src/Action.js:7
7: export default Action;
^^^^^^ Action. type referenced from value position
3: interface Action {
^ type Action
如果您使用的是 Nuclide 并且没有看到错误,请尝试从命令行 运行 flow check
。问题是类型和接口必须用 export type
或 export interface
导出,然后用 import type
Action.js
// @flow
export interface Action {
execute(): Promise<any>;
}
index.js
// @flow
import type { Action } from './Action'
class CreateJuridicalPerson {
constructor() {}
static create() {
return new CreateJuridicalPerson()
}
}
(new CreateJuridicalPerson: Action)
src/index.js:12
12: (new CreateJuridicalPerson: Action)
^^^^^^ property `execute` of Action. Property not found in
12: (new CreateJuridicalPerson: Action)
^^^^^^^^^^^^^^^^^^^^^^^^^ CreateJuridicalPerson