// declare 声明全局变量
// is 判断变量类型 返回 boolean
export declare const isString: (val: unknown) => val is string
export declare const isNumber: (val: unknown) => val is number
class ElementPlusError extends Error {
constructor (m: string) {
super(m)
this.name = 'ElementPlusError'
}
}
// TODO: eslint 函数重载报错 需要修改eslint 配置
export function debugWarn(err: Error): void
// eslint-disable-next-line
export function debugWarn(scope: string, message: string): void
// eslint-disable-next-line
export function debugWarn (scope: string | Error, message?: string): void {
if (process.env.NODE_ENV !== 'production') {
const error: Error = isString(scope)
? new ElementPlusError(`[${scope}] ${message}`)
: scope
// eslint-disable-next-line no-console
console.warn(error)
}
}
如上图所示: 使用 declare 定义的 方法 在编译成 js 的时候消失了。
想要他编译成 如下方法:
const isNumber = (val) => typeof val === "number"
构建工具: vite
不写declare就行了吧。
首先你需要保证自定义内容确实加载了,然后declare的作用是你不用每次都额外声明import了。
已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。