首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于Mostjs流互操作性的Cyclejs类型记录类型?

用于Mostjs流互操作性的Cyclejs类型记录类型?
EN

Stack Overflow用户
提问于 2017-05-01 16:03:30
回答 1查看 144关注 0票数 2

我有一个小组件,我想提供类似于这个例子的属性类型

我在用cyclejs和mostjs流库。

这样做是可行的:

代码语言:javascript
复制
import { Sources } from '@cycle/run';
import { setup } from '@cycle/most-run';
import { div, input, span, makeDOMDriver, MainDOMSource } from '@cycle/dom';
import { of, Stream, startWith } from 'most'; 

function Checkbox(sources: Sources) {
  const click$ = sources.DOM.select('.checkbox').events('click');
  const toggleCheck$ = click$
    .filter(ev => ev.target instanceof HTMLInputElement)
    .map(ev => ev.target.checked)

  const toggled$ = startWith(false, toggleCheck$)

  const vdom$ = toggled$.map(toggled => 
    div('.checkbox', [
        input('.checkbox', {attrs: {type: 'checkbox', checked: toggled}}), 
        'Label Here'
      ])
    );

  return {
    DOM: vdom$
  }
}

const {sources, sinks, run} = setup(Checkbox, { DOM: makeDOMDriver('#mount')});
const dispose = run();

Sources类型只是:

代码语言:javascript
复制
export declare type Sources = {
    [name: string]: any;
}

我想为CheckboxSources创建显式类型

代码语言:javascript
复制
import { DOMSource } from '@cycle/dom';

export type CheckboxSources = {
  DOM: DOMSource,
  props$: Stream<CheckboxProps>  
}

但是DOMSource使用来自xstreamStream --我需要在两个流库之间进行转换吗?我以为most-run会把这种转换抽象化?

我可以在DOM中使用any类型,但更喜欢显式类型。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-01 19:39:47

对于循环DOM的most.js,需要分别获取类型:

代码语言:javascript
复制
import {DOMSource} from '@cycle/dom/most-typings.d.ts'

我们试图支持所有配置为零的流库的类型,但是虽然TypeScript不能支持泛型(例如S<T>,其中S将是来自xstream或大多数的流类型,而T可能是字符串),但不幸的是,这个特性似乎不可能实现。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43722248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档