美文网首页
Flow类类型(Class Types)

Flow类类型(Class Types)

作者: vincent_z | 来源:发表于2018-01-25 22:20 被阅读0次

    类类型(Class Types)

    Flow中的JavaScript类同时作为一个值和一个类型存在。你可以像使用Flow一样编写类,也可以使用类的名称作为类型。

    class MyClass {
      // ...
    }
    
    let myInstance: MyClass = new MyClass();
    

    类语法(Class Syntax)

    Flow中的类与普通的JavaScript类相同,只是增加了类型。

    类方法

    类方法与函数定义一样定义传入参与返回值的类型。

    class MyClass {
      method(value: string): number { /* ... */ }
    }
    
    类字段(属性)

    Flow中使用类字段必须先注解。

    // @flow
    class MyClass {
      method() {
        // $ExpectError
        this.prop = 42; // Error!
      }
    }
    
    // @flow
    class MyClass {
      prop: number;
      method() {
        this.prop = 42;    // Works!
      }
    }
    

    Flow还支持使用类属性语法。

    class MyClass {
      prop = 42;
    }
    

    类泛型(Class Generics)

    类也可以有自己的泛型。

    class MyClass<A, B, C> {
      property: A;
      method(val: B): C {
        // ...
      }
    }
    

    类泛型被参数化。 当你使用类作为类型时,你需要为每个泛型传递参数。

    // @flow
    class MyClass<A, B, C> {
      constructor(arg1: A, arg2: B, arg3: C) {
        // ...
      }
    }
    
    var val: MyClass<number, boolean, string> = new MyClass(1, true, 'three');
    

    相关文章

      网友评论

          本文标题:Flow类类型(Class Types)

          本文链接:https://www.haomeiwen.com/subject/owvbaxtx.html