TypeScript继承类方法调用返回空字符串问题排查
解决:ShelterDog调用bark()控制台显示的问题
你的代码逻辑本身没有错误,出现<empty string>是因为bark()方法的返回类型是void——浏览器控制台会显示函数的返回值,而该方法没有返回值,所以会显示<empty string>。你预期的"WOOF WOOF!!!"其实已经通过console.log输出了,检查控制台的完整内容,应该能看到两行该字符串(elton.bark()和benton.bark()各输出一次)。
如果是在控制台直接输入benton.bark()执行,控制台会先打印"WOOF WOOF!!!",再显示方法的返回值(即<empty string>),别把返回值当成了方法的输出内容。
如果希望方法本身返回该字符串,可以修改Dog类的bark方法:
bark(): string { const barkSound = "WOOF WOOF!!!"; console.log(barkSound); return barkSound; }
这样调用benton.bark()时,控制台既会打印目标字符串,方法的返回值也会是该字符串,不会再显示空内容。
内容的提问来源于stack exchange,提问作者HotSauceCoconuts
相关产品推荐
相关产品推荐

