typescript 与Deno中的`util.inspect`等效

xdyibdwo  于 2023-06-24  发布在  TypeScript
关注(0)|答案(3)|浏览(109)

Deno是否有一个实用函数,可以将Object或原语转储为Node.js util.inspect之类的字符串?
例如,在Node.js中,我创建了一个json对象,并希望将其内容转储到Node中:

> m = {k1:'v1', k2:'v2'}
{ k1: 'v1', k2: 'v2' }
> util.inspect(m)
'{ k1: \'v1\', k2: \'v2\' }'
brgchamk

brgchamk1#

Deno与Node的util.inspect的等价物是Deno.inspect
例如,在deno REPL中:

> m = {k1:'v1', k2:'v2'}
{ k1: "v1", k2: "v2" }
> Deno.inspect(m)
{ k1: "v1", k2: "v2" }
pieyvz9o

pieyvz9o2#

另外,如果你想覆盖Deno.inspect返回你自己的结果,你可以像这样添加一个Deno.customInspect方法到你的类中:

class someClass {
    // code ...

    [Symbol.for("Deno.customInspect")]() {
        return 'any ol string';
    }

}

以下是Deno.inspectDeno.customInspect的文档

xzlaal3s

xzlaal3s3#

一般使用Deno.inspect(someObject)
如果你想为特定的类定制Deno.inspect的字符串表示,从Deno 1.19开始,你应该实现如下内容:

class MyClass {

  // …

  [Symbol.for("Deno.customInspect")]() {
    return "custom string representation;
  }

  // …
}

使用console.log(someObject)显示的对象也会受到此影响。
文档可以在here中找到。
请注意,@Lukalot显示的版本自Deno 1.19以来已被弃用,因此可能会在未来版本中停止工作。

相关问题