返回介绍

字面量推断

发布于 2024-09-16 11:24:09 字数 722 浏览 0 评论 0 收藏 0

字面量推断是 TypeScript 中的一项功能,允许根据变量或参数的值推断其类型。

在下面的示例中,我们可以看到 TypeScript 认为 x 文字类型是因为该值以后不能随时更改,而 y 被推断为字符串,因为它以后可以随时修改。

const x = 'x'; // x 为字面量类型,因为值不能改变
let y = 'y'; // string, 我们能改变这个值

在下面的示例中,我们可以看到 o.x 被推断为 string (而不是字面量的 a),因为 TypeScript 认为该值可以在以后随时更改。

type X = 'a' | 'b';

let o = {
    x: 'a', // 这是一个更宽的 string
};

const fn = (x: X) => `${x}-foo`;

console.log(fn(o.x)); // 'string' 类型的参数不能赋值给 'X' 类型的参数

正如你所看到的代码在传递 o.xfn 作为一个狭窄类型时,抛出了一个错误。

我们能通过使用 const 或者 X 来借助类型推断解决这个问题:

let o = {
    x: 'a' as const,
};

or:

let o = {
    x: 'a' as X,
};

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文