调试器忽略的 TypeScript toString

tza*_*chs 5 google-chrome-devtools typescript visual-studio-code

作为对此的后续问题:TypeScript override ToString()

假设我们有一个Person类,我们toString像这样覆盖:

class Person {
    constructor(
        public firstName: string,
        public lastName: string
    ) {}

    public toString(): string {
       return this.firstName + ' ' + this.lastName;
    }
} 
Run Code Online (Sandbox Code Playgroud)

因此,如原始问题中所述,这在执行console.log("" + myPerson);时工作正常,但是Person在调试器中检查 的实例时toString似乎被忽略并显示默认显示。我针对 Google Chrome 的调试器(悬停在变量上)和 VS Code 的调试器(都悬停在变量上,并查看“本地”选项卡)进行了测试。

有没有办法让一个或两个调试器尊重toString覆盖?

注意:如果我使用 lambda 版本的 toString 没有关系,结果是一样的。

Mar*_*ark 1

这可能会有所帮助:v1.69 发行说明:toString() 变量预览

如果变量或属性具有自定义toString()方法,则会调用它将在VARIABLES视图中渲染预览并悬停。这是对具有良好字符串表示的复杂类型的通用对象预览的改进。

例如,VS CodeRange有一个toString方法,让人一目了然:

显示 toString() 调用的调试变量视图演示