首页 > 解决方案 > 如何在 TypeScript 中键入提示特定的常量字符串?

问题描述

我有一个从对象中检索存储值的 getter 函数。还有一个 setter 设置一个新值。

type IObjectType = {
    APP_ENV: string;
    APP_CONFIG: string;
    [key: string]: string;
};

const object: IObjectType = {
    APP_ENV: '10',
    APP_CONFIG: 'configString',
};

function get(key: string): any {
    return object[key];
}

我希望 Typescript 提示对象的常量键,如下所示。

在此处输入图像描述

在上图中,我更改了get参数的类型,以获得提示。我想要的是get接受任何string作为参数并显示提示的函数,如果它是像APP_ENVor这样的强制键APP_CONFIG

我尝试了联合运算符

function get(key: "APP_ENV" | "APP_CONFIG" | string): any {
    return object[key];
}

由于 TypeScript 将签名评估为字符串,因此上述内容不起作用。

在此处输入图像描述

有什么解决办法吗?当有大量强制键时,适当的提示会非常有用。

标签: typescript

解决方案


当然,这取决于您的 IDE,但使用重载可能会有所帮助:

function get (key: 'APP_ENV' | 'APP_CONFIG'): any
function get (key: string): any
function get (key: string): any {
  // code
}

推荐阅读