在TypeScript中,为什么我的类型别名返回错误?
在Car.ts中,我有以下代码:在TypeScript中,为什么我的类型别名返回错误?,typescript,Typescript,在Car.ts中,我有以下代码: export class Car { static SMALL: string = "small"; static MEDIUM: string = "medium"; static LARGE: string = "large"; } import { Car } from "./Car"; type CARSIZE = Car.SMALL | Car.MEDIUM | Car.LARGE; 在CarSize.ts中,我有以下
export class Car {
static SMALL: string = "small";
static MEDIUM: string = "medium";
static LARGE: string = "large";
}
import { Car } from "./Car";
type CARSIZE = Car.SMALL | Car.MEDIUM | Car.LARGE;
在CarSize.ts中,我有以下代码:
export class Car {
static SMALL: string = "small";
static MEDIUM: string = "medium";
static LARGE: string = "large";
}
import { Car } from "./Car";
type CARSIZE = Car.SMALL | Car.MEDIUM | Car.LARGE;
我正在尝试创建一个CARSIZE类型,它只能是Car.SMALL
、Car.MEDIUM
或Car.LARGE
中的一种
我收到以下错误:
“Car”仅指类型,但在此处用作命名空间
如何修复此错误?因为
Car.SMALL
是一个值,而不是一种类型
在本例中,我将使用字符串枚举:
enum CarSize {
small = "small",
medium = "medium",
large = "large"
}
但是如果您真的想让它工作,您可以使用typeof
来获取值的类型。此外,您还需要将属性定义为只读
,并删除显式类型标记,以便编译器能够将类型推断为文本:
class Car {
static readonly SMALL = "small";
static readonly MEDIUM = "medium";
static readonly LARGE = "large";
}
type CARSIZE = typeof Car.SMALL | typeof Car.MEDIUM | typeof Car.LARGE;
因为
Car.SMALL
是一个值,而不是一种类型
在本例中,我将使用字符串枚举:
enum CarSize {
small = "small",
medium = "medium",
large = "large"
}
但是如果您真的想让它工作,您可以使用typeof
来获取值的类型。此外,您还需要将属性定义为只读
,并删除显式类型标记,以便编译器能够将类型推断为文本:
class Car {
static readonly SMALL = "small";
static readonly MEDIUM = "medium";
static readonly LARGE = "large";
}
type CARSIZE = typeof Car.SMALL | typeof Car.MEDIUM | typeof Car.LARGE;
使用枚举而不是使用枚举