我有一些代码呈现了一个标签控件,它正在查看传入的反应孩子,但我不知道它是单个项目还是数组。如果没有使用任何一种方法,是否有更清洁的方法?我试图让类型缩小工作但是没有成功。
class BLEU(object):
# add self in the functions
def compute(self, candidate, references, weights):
...
# don't do this
# bp = BLEU.brevity_penalty(candidate, references)
# instead call the method from like this:
bp = self.brevity_penalty(candidate, references)
...
def modified_precision(self, candidate, references, n):
...
def brevity_penalty(self, candidate, references):
...
答案 0 :(得分:3)
检查其数组是否为Array.isArray(input)
或input instanceof Array
https://www.w3schools.com/jsref/jsref_isarray.asp
if (Array.isArray(input)) return input;
if (input === undefined) return [];
return [input];
答案 1 :(得分:1)
我会做像
这样的事情EnsureArray<T extends React.Component>(inputs: ReadonlyArray<T>): ReadonlyArray<T>;
EnsureArray<T extends React.Component>(input: T): T[];
EnsureArray<T extends React.Component>(input: T | ReadonlyArray<T> | undefined): any[] {
if (input === undefined) { return []; }
return Array.isArray(input)
? input
: [input];
}