class A {}
class B extends A {}
上面的代码可以正常工作,但是当我尝试对导入的类进行相同操作时,我将无法正常工作。
declare module 'a' {
declare export class A {}
}
import typeof { A } from 'a';
class B extends A {}
无法从值位置引用类型
A
[1]
任何人都可以解决吗?
答案 0 :(得分:1)
定义一个类时,实际上定义了一个类型和一个Javascript类,并且它们都具有相同的名称。类型仅在编译时存在-它们没有运行时表示形式。在您的示例中,您导入了类型,但未导入运行时值。
// imports the type only
import typeof { A } from 'a'
// imports both the type and the runtime value
import { A } from 'a'
该类型通知Flow为了进行类型检查而该类做什么。但是运行时值是定义要执行的实现的值。编译后的程序必须具有对运行时值的引用,以实例化或扩展类。换句话说,删除typeof
关键字,它应该可以工作。