typescript - 静态常量 : how?

标签 typescript

我正在尝试在 typescript 应用程序中创建常量文件。这个想法是,当 ServiceConstants.AUTH_SERVICE_TOKEN 被调用时,它将返回一个不透明的 token 对象。

我尝试了两种实现方式:

ServiceConstants.ts 作为命名空间

export namespace ServiceConstants {

    export const AUTH_SERVICE_TOKEN: OpaqueToken = new OpaqueToken('AuthService');

}

ServiceConstants.ts 作为一个类

export class ServiceConstants {

    public static AUTH_SERVICE_TOKEN: OpaqueToken = new OpaqueToken('AuthService');

}

但是,如果我调用这个对象,我会得到一个

Uncaught TypeError: Cannot read property 'AUTH_SERVICE_TOKEN' of undefined

如何初始化 AUTH_SERVICE_TOKEN 以便我可以简单地调用 ServiceConstants.AUTH_SERVICE_TOKEN 而无需初始化变量而无需创建新对象?我认为 namespace 就足够了,但似乎还不够。

干杯

JT

最佳答案

typescript 处理此问题的方式是要求将 ServiceConstants.ts 编写为既不是类也不是 namespace 。只需一个包含以下单行的文件就足够了:

ServiceConstants.ts

export let AUTH_SERVICE_TOKEN: OpaqueToken = new OpaqueToken('AuthService');

然后在简单的调用文件中

somefile.ts

import {AUTH_SERVICE_TOKEN} from './ServiceConstants';

console.log(AUTH_SERVICE_TOKEN);

HTH

JT

关于typescript - 静态常量 : how?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39287239/

相关文章:

visual-studio-2013 - typescript 1.0 map 文件不加载

typescript - 您如何使用 atom-typescript 包控制/配置 linting?

angular - typescript:从外部路径导入模块

angular - 我应该将什么样的对象传递给 `FormBuilder.group()` 才能正确实例化字段?

javascript - 在 Typescript 中使用 Object.keys 时避免隐式 'any' 类型

requirejs - 带有 requireJs 的 TypeScript 用于编码模块化方式

javascript - TypeScript:要求两个数组的长度相同?

javascript - Monaco Editor - 如何使某些区域只读

typescript 不会因错误的 promise 返回类型而抛出错误

javascript - Angular 6按日期排序对象数组