jjzjj

Flowtype

全部标签

javascript - {} 和对象有什么区别?

最近,我对{}和Object之间的区别感到困惑。有时,{}会解决我的问题,有时,它不能,我切换到Object。我真的不知道为什么。我做了一些测试,希望它能给你一些提示。constt:Array=[{label:'1'}];constarr:Array=t;//errorconstarr2:Array=t;//pass 最佳答案 {}是newObject()的别名。所以您可以说Object是一个类,而{}是该类的一个实例。你可以在这里看到:console.log(JSON.stringify(newObject())==JSON.st

javascript - 窗口对象的正确流类型是什么?

我需要从我的应用程序的根部传入窗口,我对应该使用哪种流类型感到困惑。我试过了exportdefaultclassListAttributeextendsComponent{props:{frameWindow:mixed}componentDidMount(){this.props.frameWindow.addEventListener('click',this.closeList,false)}....}这让我调用方法addEventListener。无法在混合时调用方法,我尝试了改进,但没有成功。我尝试查看此处,但找不到与bom本身相关的任何内容。https://www.salt

javascript - 如何在 Flow 类型中指定一个空对象?

假设我有一个可以是JavaScript错误对象或空对象的变量,我如何在Flow中指定空对象?我在不同地方尝试过的一种可能性(例如here)看起来像这样:consterr:Error|{||}={};但这会产生以下流程错误:1:constexact:{||}={};^Cannotassignobjectliteralto`exact`becauseinexactobjectliteral[1]isincompatiblewithexactobjecttype[2].References:1:constexact:{||}={};^[1]1:constexact:{||}={};^[2]参

javascript - 流程中的密封案例类

我正在尝试模仿Scala的sealedcaseclasses在Flow中使用disjointunions:typeADD_TODO={type:'ADD_TODO',text:string,id:number}typeTOGGLE_TODO={type:'TOGGLE_TODO',id:number}typeTodoActionTy=ADD_TODO|TOGGLE_TODOconsttodo=(todo:TodoTy,action:TodoActionTy)=>{switch(action.type){case'ADD_TODO':return{id:action.id,text:ac

javascript - Flow 不会提示不正确的类型

在这段代码中,流并没有提示在状态上设置了值dog。它似乎忽略了NamespaceData定义。我已经设置了类型,所以它应该提示。我在核素上运行,流量对其他一切都正常工作。action的所有属性,例如namespace、project、collection都是字符串。//@flowimport{NAMESPACE_SET}from'../actions/NamespaceActions'typeNamespaceData={project:string,collection:string,}typeNamespaceState={[namespace:string]:NamespaceD

javascript - 如何解决 Jest 模拟中的 Flow 类型错误

我正在使用Jest模拟模块中的某些功能并以下列方式进行测试:jest.mock("module",()=>({funcOne:jest.fn(),funcTwo:jest.fn(),...}));import{funcOne,funcTwo,...}from"module";test("somethingwhenfuncOnereturns'foo'",()=>{funcOne.mockImplementation(()=>'foo');//{funcOne.mockImplementation(()=>'bar');//如何阻止Flow报告property'mockImplement

javascript - Flowtype - 如何为类工厂编写声明,例如 Backbone 模型?

大量谷歌搜索和阅读Flow文档和示例并未显示Javascript中非常常见模式的任何示例-具有返回类的函数。一个典型的例子是Backbone:varUser=Backbone.Model.extend({getFullName:function(){returnthis.get('firstName')+''+this.get('lastName');}});varexampleUser=newUser();exampleUser.set('firstName','Johny');//set()isamethodfromBackbone.ModelexampleUser.set('la

javascript - 如何实现 Symbol.iterator?

我正在尝试创建Set的子类,因为我不能简单地从它扩展,所以我包装了它的功能。我正在尝试实现Symbol.iterator方法,但Flow没有。这是我的代码:/*@flow*/classCSet{_set:Set;[Symbol.iterator]():Iterator{returnthis._set[Symbol.iterator];}}vara:CSet=newCSet();for(varbofa){}core.js:309:5,29:property@@iteratorPropertynotfoundintest.js:2:7,10:CSettest.js:4:2,6:2:comp

javascript - 将对象解构与流类型相结合

我刚刚添加了Flow到我的Create-React-App项目,并且在将我的一些计算代码转换为流类型时,我遇到了这个带有解构“对象作为参数”的错误原始签名:calcWeightOnConveyor({tonsPerHour,conveyorLength,conveyorSpeed})流式后:calcWeightOnConveyor({tonsPerHour:number,conveyorLength:number,conveyorSpeed:number}):number错误:$flowError:src/utils/vortex/calculate.js:3131:exportfun

javascript - 使用 Javascript 的 Flowtype 解释泛型

我以前从未用静态类型语言编写过。我主要使用Javascript进行开发,最近我有兴趣了解更多有关FB的Flowtype的信息。我发现文档写得很好,而且我理解了其中的大部分内容。但是我不太明白generics的概念.我试过用谷歌搜索一些例子/解释,但没有成功。谁能解释一下什么是泛型,它们主要用于什么,并可能提供一个例子? 最佳答案 假设我想编写一个只存储单个值的类。显然这是人为的;我保持简单。实际上这可能是一些集合,比如Array,可以存储多个值。假设我需要包装一个number:classWrap{value:number;const