我创建了一个定义了类型的 NPM 包(包括使用):
(SolarEdge.js)
export type Period = 'DAY' | 'QUARTER_OF_AN_HOUR' | 'MONTH' | 'HOUR' | 'WEEK' | 'MONTH' | 'YEAR';
public getData = async (site: number, start: string, end: string, period: Period) => {}
(index.js)
export { default } from './SolarEdge';
从 ts 编译后,我得到 4 个文件(index.js、index.d.ts、SolarEdge.js、SolarEdge.d.ts)
从我的快速应用程序中使用它时,它抱怨我无法将字符串传递给这个函数,因为它需要一个句点。
错误:'string' 类型的参数不可分配给'Period'.ts(2345) 类型的参数
代码:
const data = await solaredge.getData(
parseInt(req.params.site),
req.params.start,
req.params.end,
//'MONTH',
req.params.period,
);
req.params.period
包含带有“MONTH”或其他内容的字符串。当使用硬编码字符串 MONTH 时,它可以工作,但使用 req.params.period 变量时,它不会。
我试过做:req.params.period as Period
但问题是:它找不到句号。
这是如何运作的?