[].every(i => i instanceof Node) // -> true
配列が空の場合、JavaScriptの配列のすべてのメソッドがtrueを返すのはなぜですか?私はタイプアサーションをそうしようとしています...空の配列でArray.prototype.everyがtrueを返すのはなぜですか?
let isT = (val, str) => typeof val === str, is = {},
nT = (val, str) => !isT(val, str);
is.Undef = (...args) => args.every(o => isT(o, 'undefined'));
is.Def = (...args) => args.every(o => nT(o, 'undefined'));
is.Null = (...args) => args.every(o => o === null);
is.Node = (...args) => args.every(o => o instanceof Node);
is.NodeList = (...args) => Array.from(args).every(n => is.Node(n));
しかし、引数が渡されていなくても、これらは引き続き真です。
回答がわかりませんが、 'is.Undef =(... args)=> args.length && args.every(o => isT(o、 'undefined'))を使用することができます。 ; ' – synthet1c