TL;DR如何告诉flow从未使用@flow声明的导入模块导入类型定义?更长的版本流接缝能够从不使用流语法的文件中派生类型(参见示例)。示例文件“flow.js”if(Math.random()命令'flowsuggestflow.js'if(Math.random()它还能够使用flowget-importers列出来自特定文件的所有导入。工具接缝在那里,但我无法弄清楚如何自动告诉flow从我的导入中获取类型定义,而不是用@flow声明。我希望它沿着导入链向下遍历,计算类型并在用@flow标记的文件中使用它们。我不希望它没有用@flow标记的类型检查代码,只检索类型。
我正在传递一个组件作为Prop。定义如下。exporttypeTableProps={contents:T[],loadContents:()=>Promise};这工作正常,但我想更新这个定义说,至少上面的Prop应该存在,但允许额外的Prop。是否有我可以用来执行此操作的定义。例如,我希望接受具有以下签名的组件。typeProps={onChangeMark:(val:string)=>void,...TableProps};我已经尝试将它们定义为接口(interface),但它们仍然被拒绝。interfaceTableProps{contents:T[],loadContents
在函数作为参数传入的上下文中,您如何定义流中函数的类型?例如,下面的afterDoneSomething是正在传递的回调函数-我不确定如何定义它的流类型。functiondoSomething(path:string,afterDoneSomething:) 最佳答案 根据文档:http://flowtype.org/docs/functions.html,您需要提供函数参数的类型和返回值:(P1:T1,..,Pn:Tn)=>U所以假设你的afterDoneSomething接受一个数字并返回一个数字,它应该被注释为function
我最近将此添加到我的流程配置中,因为大量与流程拾取的节点模块相关的错误[ignore].*/node_modules/.*这解决了那些错误,但引入了新错误。现在,我导入的每个模块都会导致错误,其中流程表示它无法解决它,因此让我认为这是由于我添加的忽略规则造成的。有没有办法解决这个问题,因为这里删除这一行只会引入不同类型的错误,保留它仍然会出错。 最佳答案 现在有点晚了,但对于以后遇到这个问题的任何人来说:你不应该忽略你的node_modules文件夹。Flow应该从该文件夹中读取并分析其中的文件。
Flow允许您使用以下语法导入类型://SomeClass.jsexportdefaultclassSomeClass{}//SomeFile.jsimporttypeSomeClassfrom'./SomeClass';使用importtype而不是import有什么好处?它是否告诉Flow更多信息并让它执行更好的静态分析? 最佳答案 对于类的特定情况,这两个示例都可以。关键是它像这样分解:importtype...from导入Flow类型import...from导入一个标准的JS值,以及该值的类型。一个JS类产生一个值,但是F
我关注了https://flow.org/en/docs/install/,flow在单个文件中使用时工作正常,如下所示://@flowtypeNumberAlias=number;constn:NumberAlias="123";Flow会正确指出:5:constn:NumberAlias="123";^^^^^string.Thistypeisincompatiblewith5:constn:NumberAlias="123";^^^^^^^^^^^number当我尝试从模块A导出一个类型并将该类型导入模块B时出现问题:(moduleA.js)//@flowexporttypeNu
举个例子,假设我有一个类只发出三种可能的事件——'pending'或'success'或'failure'。此外,eventHandler中接收到的参数类型取决于发出的事件–如果'pending',eventHandler不接收任何参数如果“成功”,eventHandler收到一个number如果“失败”,eventHandler收到一个错误这是我尝试建模的方式://@flowimportEventEmitterfrom'events'typeCustomEventObj={|pending:void,success:number,error:Error|}declareclassMy
如何表达函数的签名,必须返回它接收(被调用)的参数(或this),在TypeScript中?是否有一种编程语言可以做到这一点?*//InTypeScript(orconsideritpseudo-code)classC{//EXAMPLE1–Notpolymorphicchainable(x):this//MUSTnotonlyreturnsomeC,{}//butthesameinstanceitwascalledon}//EXAMPLE2functionmutate(a:T[],x):T[]//MUSTreturna,notanewArray{/*Sothatthisdoesn't
给定一个这样创建的网站对象import{Map}from'immutable'constwebsite=newMap({name:'MyWebsite',url:'http://www.myw.fr'})我如何声明一个websiteType,它是一个完全包含给定属性的map。我知道我能做到:declaretypewebsiteType=Map但我想更具体一点,并声明一个映射,该映射必须包含string类型的属性name和url。有可能吗? 最佳答案 希望我答对了你的问题,因为我从未使用过“不可变”的map,因此我将使用es6Map.
我不确定是否有解决此问题的方法,或者在使用映射的TypeScript文件时是否存在问题,但在许多情况下(较大的文件),我似乎失去了语法突出显示..从上图可以看出,直到第102行都没有问题,从那以后文件的其余部分只是红色。以上内容来自Ionic2/Angular2项目。似乎在使用反引号字符串之后发生(但并非总是在使用这些字符串之后)这不是世界末日,但突出显示确实使其更易于阅读。还有其他人遇到过这种情况,也许知道解决方法吗? 最佳答案 在使用TSsourcemaps时一直遇到这个问题。那是Chrome引擎的问题,也有关于这个问题的错误报