我正在尝试从构造中的变量中获取所有定义的类型。
List<Long>
我期待这样的结果。
text
可能有一个函数或能力可以从构造函数中实现这一点。当委托人不能更改时?
我尝试使其自动化,以便它基本上提取所有类型,并且我能够让它们进行选择。
Here 只是一个例子,说明这是不可能的。
或者类似解决方案的想法?
实际上我目前在 v4.0.5 中使用 Typescript
谢谢。
答案 0 :(得分:0)
如果您想要的是类似于迭代变量的可能值。类型需要在打字稿中以静态最终方式引用。
export class TestClass{
types = ['NUMBER', 'STRING', 'DATE', 'ENUM', 'AMOUNT'] as const;
resultType: TestClass["types"][number];
}
在上面的例子中,resultType 的接受值是 types 数组的成员。所以类型验证会触发。
答案 1 :(得分:0)
由于这些类型在运行时不存在,您不能直接生成字符串。 您可以创建一些帮助程序来确保您只使用正确的密钥。
type Types = 'foo'|'bar'|'baz';
type TypeHolder<T extends string> = { [Key in T]: number; }
function getKeys<T extends string>(types: TypeHolder<T>) {
return Object.keys(types);
}
console.log(getKeys<Types>({ foo: 1, bar: 1, baz: 1 })); // ['foo', 'bar', 'baz']
嗯,不太好。反过来做可能要容易得多:
const types = ['foo', 'bar', 'baz'] as const;
type Types = typeof types[number]; // 'foo'|'bar'|'baz'