gpt4 book ai didi

typescript - 如何模拟 "T extends enum"通用约束?

转载 作者:行者123 更新时间:2023-12-04 14:20:42 26 4
gpt4 key购买 nike

I'm already aware that TypeScript does not allow enums as constraints ,但是有没有办法——甚至是一个黑客——来获得类似的行为?

export enum StandardSortOrder {
Default,
Most,
Least
}

export enum AlternativeOrder {
Default,
High,
Medium,
Low
}

export interface IThingThatUsesASortOrder<T extends enum> { // doesn't compile
sortOrder: T;
}

最佳答案

typescript 中没有这样的限制。您能做的最好的事情是使用枚举的基本类型,在本例中为 number (如果您需要使用字符串枚举,那么您可以使用 stringstring | number 如果您想同时允许两者)

export enum StandardSortOrder {
Default,
Most,
Least
}

export enum AlternativeOrder {
Default,
High,
Medium,
Low
}

export interface IThingThatUsesASortOrder<T extends number> {
sortOrder: T;
}

let a: IThingThatUsesASortOrder<StandardSortOrder>
let a2: IThingThatUsesASortOrder<AlternativeOrder>

关于typescript - 如何模拟 "T extends enum"通用约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55356672/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com