Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 可以使用泛型定义中定义的泛型_Javascript_Flowtype - Fatal编程技术网

Javascript 可以使用泛型定义中定义的泛型

Javascript 可以使用泛型定义中定义的泛型,javascript,flowtype,Javascript,Flowtype,我试图使用类的泛型定义中定义的泛型: type Foo<T : BoundType> = { bar : T } class Class<F : Foo<T : BoundType>> { method(arg : T) { ... } } 类型Foo={ 酒吧:T } 班级{ 方法(arg:T){…} } Flow抱怨类的语法 有没有办法在类中使用Foo中使用的T类型?以下方法可行,但我正在尝试消除重复该类型两次的需要: type Fo

我试图使用类的泛型定义中定义的泛型:

type Foo<T : BoundType> = {
    bar : T
}

class Class<F : Foo<T : BoundType>> {
    method(arg : T) { ... }
}
类型Foo={
酒吧:T
}
班级{
方法(arg:T){…}
}
Flow抱怨
类的语法

有没有办法在类中使用Foo中使用的T类型?以下方法可行,但我正在尝试消除重复该类型两次的需要:

type Foo<T : BoundType> = {
    bar : T
}

class Class<T : BoundType, F : Foo<T>> {
    method(arg : T) { ... }
}

let x = new Class<ConcreteType, Foo<ConcreteType>>;
类型Foo={
酒吧:T
}
班级{
方法(arg:T){…}
}
设x=新类;
您可以使用告知流来推断泛型类型参数,以及“查询”
属性类型:

type Foo<T : BoundType> = {
    bar : T
}

class TestClass<F : Foo<*>> {
    method(arg : $ElementType<F, 'bar'>) { }
}

declare var c: TestClass<Foo<ConcreteType>>;
类型Foo={
酒吧:T
}
类TestClass{
方法(arg:$ElementType){}
}
声明var c:TestClass;

**可能有更好的方法来获取泛型类型参数的类型,而不是查询
bar
属性类型


***将
Class
重命名为
TestClass
,因为它是流的实用程序之一,所以我建议您不要将其用作名称

您能添加投诉吗?从第一块代码:
class{^T.意外标记:
如果您能在中生成一个清晰的示例,则更容易理解。事实上,您的示例
新类;
首先无效,并且我们没有
具体类型
边界类型
的示例。请澄清类型之间的预期关系也许你应该给我们一个简单数据的例子,显示你的期望。你上面的代码看起来像TypeScript,不会在浏览器中运行。你需要将它“编译”成JavaScript。