如何正确记录鸭子类型的对象参数?让我们说我有一个功能:
function doSuff(animal){
// do stuff
}
如果我要求动物应该使用walk
,eat
,speak
和sleep
方法,请如何在文档中说明它们?
编辑:通过文档,我的意思是像JSDoc或任何其他评论风格的文档。我可能会做一个单独的深入技术文档,但我认为在函数代码本身上面对参数进行简单描述是很好的。
答案 0 :(得分:0)
我也认为编写自我解释的代码很好。在函数上使用JSDoc,还可以帮助用户知道代码中直接丢失的内容。
您可以执行以下操作:
let createAnimal = function (a) {
if (!a.walk || !a.eat || !a.speak || !a.sleep) {
throw new Error(`An animal must walk: '${a.walk}', eat: '${a.eat}', speak: '${a.speak}', sleep: '${a.sleep}'`);
}
return function doStuff() {
console.log(a.swim)
};
};
let Animal = {
walk: 'fnWalk',
eat: 'fnEat',
speak: 'fnSpeak',
sleep: 'fnSleep'
};
let Duck = Object.create(Animal);
Duck.swim = 'fnSwim';
let doStuffWithAnimal = createAnimal(Duck);
doStuffWithAnimal();