typescript - 从对象属性设置变量的类型
问题描述
我正在尝试将变量的类型设置为对象的属性,例如下面的代码。
class Foo {
}
const obj = {
Foo,
};
const foo: Foo; // valid
const bar: obj.Foo; // Cannot find namespace 'obj'.
这给了我错误Cannot find namespace 'obj'
。有没有办法从对象属性设置变量的类型,例如foo
和bar
的类型Foo
?
解决方案
无法将类型添加到对象类型。您可以做的最接近的事情是使用命名空间定义。命名空间可以同时具有变量和类型。命名空间在运行时表示为一个对象,因此它可能足够接近您的需要:
class Foo {
}
type _Foo = Foo;
const _Foo = Foo;
namespace obj {
export type Foo = _Foo;
export const Foo = _Foo; // to allow instantiation through obj.Foo
};
const foo: Foo; // valid
const bar: obj.Foo = new obj.Foo()
推荐阅读
- function - 将 ffmpeg 流式传输到存储
- sql - 要创建的索引
- spring - 如何修复内部服务器错误?HTTP ERROR:500
- javascript - Lodash:如何使用多个嵌套属性进行分组?
- java - 为什么 Map.getOrDefault() 会警告 NullPointerException?
- python - AttributeError:类型对象“ContactRequestSerializer”没有属性“get_extra_actions”
- r - 找不到功能“ggsave”
- statistics - 如何仅使用 SPSS 计算低于和高于 z 分数的分布百分比,而无需手动查看 z 表
- python - Python Sockets:如何检测客户端何时不正常断开连接?(例如 WiFi 断开连接)
- reactjs - 侦听车轮下降和挂载和卸载事件侦听器