如何定义带有“px”后缀的自定义类型

hh5*_*188 4 typescript

我知道如何定义Position类型类:

class Position {
  x: number = 0;
  y: number = 0;
}
Run Code Online (Sandbox Code Playgroud)

但现在我需要并且xy是一个带有后缀的整数,px例如:

const position = {
  x: '1px',
  y: '2px'
}
Run Code Online (Sandbox Code Playgroud)

如何在 TypeScript 中定义这样的类型?

Вит*_*ких 5

您可以尝试使用这种方法:

type HeightUnit = '%' | 'px' | 'em' | 'vh';
type HeightProp = `${number}${HeightUnit}`
Run Code Online (Sandbox Code Playgroud)

和结果:

myHeight: HeightProp;
myHeight = '10px'  --- ok
myHeight = '10'  --- compilation error
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅模板文字类型