Intl.Segmenter Deno 支持

Intl.Segmenter support in Deno

MDN 文档说 Intl.Segmenter 在 Deno 1.8 及更高版本中受支持。但是在尝试使用它时,出现错误。

error: TS2339 [ERROR]: Property 'Segmenter' does not exist on type 'typeof Intl'.

我的代码很简单:

const SEGMENTER = new Intl.Segmenter('en', { granularity: 'grapheme' });

这是我的 Deno 版本信息:

deno 1.20.4 (release, x86_64-unknown-linux-gnu)
v8 10.0.139.6
typescript 4.6.2

我是否遗漏了一些关于为什么这不起作用的信息?

它在那里,但它似乎不在类型定义中,所以这就是您收到编译器错误的原因。您可以使用 @ts- comment directive or the --no-check CLI run argument 来避免编译器诊断并继续执行您的程序:

example.ts:

const denoVersion = Deno.version.deno;
// @ts-expect-error
const segmenter = new Intl.Segmenter("en", { granularity: "grapheme" });
console.log({ denoVersion, segmenter });

> deno run example.ts
{ denoVersion: "1.20.4", segmenter: Intl.Segmenter {} }