将类X传递给泛型类不会返回类X的预期实例

时间:2017-02-17 14:59:29

标签: flowtype

我在这里挣扎。我正在尝试将类传递给类以在使用类方法时返回该类的实例。

class FakeClass {}

const fakeClass = new FakeClass()

class Selector <X> {
  model: x;
  constructor(model: X){
    this.model = model
  }
  getModel = () : X => {
    return this.model
  }
}

const selector : Selector<FakeClass> = new Selector(fakeClass)

const result : FakeClass = selector.getModel()

//错误

61: const result : FakeClass = selector.getModel()
                                ^^^^^^^^^^^^^^^^^^^ X. This type is incompatible with
 61: const result : FakeClass = selector.getModel()
                    ^^^^^^^^^ FakeClass

有关于此的任何想法?我不知道如何继续。

1 个答案:

答案 0 :(得分:0)

你改变了

#!/bin/bash

# Replace my_app with your application name
APP_NAME="my_app"

# Clean up old containers and images
old_containers=$(docker ps -a | grep $APP_NAME | awk '{ print $1 }')
old_images=$(docker images | grep $APP_NAME | awk '{ print $3 }')

if [[ $old_containers ]];
    then
        echo "Stopping old containers: $old_containers"
        docker stop $old_containers
        echo "Removing old containers: $old_containers"
        docker rm $old_containers
fi

if [[ $old_images ]];
    then
        echo "Removing stale images"
        docker rmi $old_images
fi

# Create new image
echo "Creating new image for $APP_NAME"
docker build . -t $APP_NAME

# Run container
echo "Running container with image $APP_NAME"
docker run -d --name $APP_NAME -p 8888:8888 $APP_NAME
echo "Check out your swaggery goodness here:

http://localhost:8888/swagger-ui/?url=http://localhost:8888/swagger-ui/swagger.yaml"

以正常方法

getModel = () : X => {

它会起作用。

我不知道这是否会被视为Flow bug。似乎Flow由于某种原因无法处理箭头函数的这种用法。也许知道更多的人可以提供比我更多的解释。