现代前端项目中如何使用全局类型?

比如我在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-undef

15:5 error 'log' is not defined no-undef

但是我在其他ts文件中可以直接使用
现代前端项目中如何使用全局类型?


回答:

在文件中写入

interface Window {

isDev: boolean

log(tag: string, ...args: any[]): void

}


回答:

看你代码只是在声明的文件里面定义了,这个文件一般是给编译器或者编辑器看的,实际上它不是真正存在的变量;

以上是 现代前端项目中如何使用全局类型? 的全部内容, 来源链接: utcz.com/p/936366.html

回到顶部