流程:使用带有流评论

时间:2017-04-16 01:05:28

标签: javascript reactjs static-analysis flowtype flow-typed

我正在开发一个可以将流注释转换为注释的库。我正在这样做,以便库的消费者可以进行类型检查,如果他们正在使用流程。

所以现在我有一个链接到本地​​版本库的示例项目。示例项目使用流程,似乎工作正常。但是当我从库中导入一个组件并将无效的道具传递给它时,flow不会引发错误。

这是我正在导入的已编译组件:

'use strict';

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = Checkbox;

var _react = require('react');

var _react2 = _interopRequireDefault(_react);

var _Check = require('./Check');

var _Check2 = _interopRequireDefault(_Check);

var _types = require('./types');

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function Checkbox(props /*: { input: BoolInputType, label: string }*/) /*: Element*/ {
  return _react2.default.createElement(
    'div',
    { className: 'form-group checkbox' },
    _react2.default.createElement(_Check2.default, props)
  );
}

这是我的示例项目中使用该导入的组件。

// @flow

import React from 'react';
import { reduxForm, Field } from 'redux-form';
import { Checkbox } from 'reformd';

export function Form() {
  return (
    <form>
      <Checkbox input="foo" />
      <Field name="hasLife" component={Checkbox} label="Got a life?" />
    </form>
  );
}

export default reduxForm({
  form: 'reformd'
})(Form);

我知道流程正在运行,因为它最初引发了有关未定义的redux-form模块的错误。我通过在/flow-types中添加一个最小的libdef来修复它。那时我希望它会引发错误,说我将无效道具传递给Checkbox,但这种情况从未发生过。

流量评论不应该在这里得到尊重吗?如果没有,那么转型的重点是什么?我是否忽略node_modules中的.flowconfig目录似乎并不重要。无论如何都没有错误。

0 个答案:

没有答案