我正在开发一个可以将流注释转换为注释的库。我正在这样做,以便库的消费者可以进行类型检查,如果他们正在使用流程。
所以现在我有一个链接到本地版本库的示例项目。示例项目使用流程,似乎工作正常。但是当我从库中导入一个组件并将无效的道具传递给它时,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
目录似乎并不重要。无论如何都没有错误。