现代前端项目中如何使用全局类型?
比如我在Home.vue组件里要使用全局变量isDev与全局方法log()
<template>...</template>import { Options, Vue } from 'vue-class-component'
@Options({})
export default class Home extends Vue {
created() {
console.log(isDev)
log('Home', 'test', 123)
}
}
</script>
然后又在根目录的global.d.ts(其中无import、export)里声明
// Api返回结果
declare interface Result<T = unknown> {
code: 200 | 401 | 404 | 500 | 501 | 502 | number | any
msg: string
data: T
}
// 日志记录
declare function log(tag: string, ...args: any[]): void
//
declare const isDev: boolean
//
declare const printLog: boolean
interface Window {
isDev: boolean
printLog: boolean
log(tag: string, ...args: any[]): void
}
interface globalThis {
isDev: boolean
printLog: boolean
log(tag: string, ...args: any[]): void
}
它却报错
14:17 error 'isDev' is not defined no-undef15:5 error 'log' is not defined no-undef
但是我在其他ts文件中可以直接使用
回答:
在文件中写入
interface Window { isDev: boolean
log(tag: string, ...args: any[]): void
}
回答:
看你代码只是在声明的文件里面定义了,这个文件一般是给编译器或者编辑器看的,实际上它不是真正存在的变量;
以上是 现代前端项目中如何使用全局类型? 的全部内容, 来源链接: utcz.com/p/936366.html