从外部文件在打字稿中声明变量得到引用错误:..未定义

Declare var in typescript from external file gets ReferenceError: ... is not defined

本文关键字:引用 错误 未定义 变量 声明 文件 从外部      更新时间:2023-09-26

>我有以下打字稿文件-->

module someModule {
declare var servicePort: string;
export class someClass{
constructor(){
  servicePort = servicePort || ""; //ERROR= 'ReferenceError: servicePort is not defined'
}

还在"someClass"中的一个函数上尝试了这个 -->

someFunction = () => {
    if (servicePort && servicePort != '') { //ERROR - also servicePort is not defined
            //do something with servicePort 
        }
}

如果我在我的 js/html 文件的某个地方定义 var servicePort,它将起作用,但并非所有页面都包含 servicePort var,我希望安全地从该变量中获取值,无一例外。我做错了什么?

有时定义变量,有时不定义变量是一个相当大的代码气味,但如果你真的想这样做,你需要用typeof保护对该变量的访问:

if (typeof servicePort !== "undefined") {
   // safe to use servicePort here
}

请注意,您将无法区分缺少的变量和undefined 的变量,但这就是生活。