gpt4 book ai didi

javascript - 使用 Flowjs 输入类时出现问题

转载 作者:行者123 更新时间:2023-12-03 00:51:53 24 4
gpt4 key购买 nike

我尝试使用 Flow 键入以下代码

type Metadata = {
currentPage: string,
};
type State = {
result: {
metadata: Metadata,
}
}

type EmptyObject = {};
type Test = Metadata | EmptyObject;

class HelperFn {
state: State;
metadata: Test;
constructor(state: State) {
this.state = state;

if (state && state.result && state.result.metadata) {
this.metadata = state.result.metadata;
} else {
this.metadata = {};
}
}
getCurrentPageNumber() {
return this.metadata.currentPage;
}
}

我已经创建了稍后分配的类型。在我的类里面,我将类型测试分配给元数据。元数据可以是具有属性的对象,也可以是空对象。当声明函数 getCurrentPageNumber 时,linter Flow 告诉我它

cannot get 'this.metadata.currentPage' because property 'currentPage' is missing in EmptyObject

看起来 Flow 仅引用了 emptyObject。告诉 Flow 我的对象可以带有属性或只是空的正确语法是什么?

最佳答案

由于 metaData 可以为空,Flow 正确地告诉您 this.metadata.currentPage 可能不存在。您可以将其包装在某种检查中,例如

if (this.metadata.currentPage) {
return this.metadata.currentPage
} else {
return 0;
}

使其正常工作。

关于javascript - 使用 Flowjs 输入类时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53009976/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com