【发布时间】:2018-10-17 00:24:49
【问题描述】:
我正在尝试在一些已知值与其他一些已知值之间做一个非常简单的映射。这段代码的一切都在尖叫我错过了打字稿可以做的一些简单的事情。
type PortInfoProp = 'comName' | 'manufacturer' | 'serialNumber' | 'vendorId' | 'productId' | 'pnpId'
interface LinuxPort extends PortInfo {}
interface PropNames {
readonly DEVLINKS: PortInfoProp
readonly DEVNAME: PortInfoProp
readonly ID_MODEL_ID: PortInfoProp
readonly ID_SERIAL_SHORT: PortInfoProp
readonly ID_VENDOR_ENC: PortInfoProp
readonly ID_VENDOR_ID: PortInfoProp
}
type PropName = keyof PropNames
function propName(name: PropName): PortInfoProp | null {
const map: PropNames = {
DEVNAME: 'comName',
ID_VENDOR_ENC: 'manufacturer',
ID_SERIAL_SHORT: 'serialNumber',
ID_VENDOR_ID: 'vendorId',
ID_MODEL_ID: 'productId',
DEVLINKS: 'pnpId',
}
return map[name] || null
}
【问题讨论】:
标签: javascript typescript types node-serialport