typescript - TypeScript 中的一些语法糖,用于值与类型偶数的情况?
问题描述
TypeScript 中是否有一些语法糖允许在value
不复制右侧的表达式的情况下进行初始化type Type =
?(是的,分号必须用逗号代替)
type Type = {
foo: "alpha";
bravo: "bravo";
};
const value: Type = {
foo: "alpha",
bravo: "bravo"
};
解决方案
如果您想要从表达式中推断类型,那么typeof
您的朋友是:
const value = {
foo: "alpha",
bravo: "bravo"
};
type Type = typeof value;
这将为您提供如下类型:
type Type = {
foo: string;
bravo: string;
};
如果您需要将每个值类型推断为文字,您可以执行以下操作:
const value = {
foo: "alpha",
bravo: "bravo"
} as const;
type Type = typeof value;
现在Type
将是:
type Type = {
readonly foo: "alpha";
readonly bravo: "bravo";
};
如果你不想要这些属性,readonly
你可以这样做:
const value = {
foo: "alpha" as const,
bravo: "bravo" as const
};
type Type = typeof value;
并且Type
将是:
type Type = {
foo: "alpha";
bravo: "bravo";
};
推荐阅读
- php - 在 laravel 编译视图之前有什么方法可以执行 string_replace 函数吗?
- reactjs - 如何从另一个主管重新渲染组件
- node.js - Node.JS read-pkg-up 遇到错误 [ERR_REQUIRE_ESM]: Must use import to load ES Module
- python - 带有池的 SQLAlchemy 不会关闭数据库连接
- linux - 在生产中在 /var/www/ 目录上设置 AllowOverride all 是否安全?
- django - django网站无法通过request.META获取客户端IP
- c++ - C++ 程序,它以这样一种方式分隔链表中的节点,使得所有偶数节点都出现在链表的开头
- keycloak - 在 Keycloak 中通过电子邮件发送 OTP
- c++ - 如果 new 运算符失败,可以将指针设置为 null 吗?
- python - Discord.py 嵌入踢,很难转动这个嵌入