我可以将 JSDoc 注释与 Flow 一起使用以在每个文件的基础上强制键入吗?
Can I use JSDoc annotations with Flow to enforce typing on a per-file basis?
我想要的是通过 Flow 理解 JSDoc 语法,而不需要任何转译。
示例:
// @flow
/**
* @param {string} str
* @return {string}
*/
function foo(str) {
return str + str;
}
foo(1); // Flow shows error
然后使用flow check-contents < foo.js
得到错误。
有可能吗?最好不要使用 Babel 或任何其他转译器。 (更重要的是 - 为什么 Flow 会在已经有可用标准的情况下选择发明自己的语法?这基本上会迫使我们选择 TypeScript 而不是 Flow。)
相关问题:Include Flow Types into JSDoc
不,但您可以使用此处所述的内联类型声明:https://flow.org/en/docs/types/comments/
示例:
// @flow
/*::
type MyAlias = {
foo: number,
bar: boolean,
baz: string,
};
*/
function method(value /*: MyAlias */) /*: boolean */ {
return value.bar;
}
method({ foo: 1, bar: true, baz: ["oops"] });
我想要的是通过 Flow 理解 JSDoc 语法,而不需要任何转译。
示例:
// @flow
/**
* @param {string} str
* @return {string}
*/
function foo(str) {
return str + str;
}
foo(1); // Flow shows error
然后使用flow check-contents < foo.js
得到错误。
有可能吗?最好不要使用 Babel 或任何其他转译器。 (更重要的是 - 为什么 Flow 会在已经有可用标准的情况下选择发明自己的语法?这基本上会迫使我们选择 TypeScript 而不是 Flow。)
相关问题:Include Flow Types into JSDoc
不,但您可以使用此处所述的内联类型声明:https://flow.org/en/docs/types/comments/
示例:
// @flow
/*::
type MyAlias = {
foo: number,
bar: boolean,
baz: string,
};
*/
function method(value /*: MyAlias */) /*: boolean */ {
return value.bar;
}
method({ foo: 1, bar: true, baz: ["oops"] });