---
name: "getCustomConfig"
mode: "api"
versionRequirements:
  - { name: "基础库", version: "2.29.0" }
title: "getCustomConfig - 获取小程序自定义配置信息。此接口用于获取在开发者后台配置的自定义业务配置，支持多种数据类型（链接、布尔值、数字、字符串）。"
---

## getCustomConfig

> [VERSION] 基础库 >= 2.29.0

### 描述

获取小程序自定义配置信息。此接口用于获取在开发者后台配置的自定义业务配置，支持多种数据类型（链接、布尔值、数字、字符串）。传入回调函数时以回调方式调用，不传回调函数时返回 Promise

### 参数

`Params`

| 参数 | 类型 | 必填 | 描述 |
| --- | --- | --- | --- |
| `params` | `GetCustomConfigParams` | 否 | 参数对象，包含 success / fail / complete 回调 |

### 返回值

类型: `Promise<unknown>`

不传回调时返回 Promise，resolve 值为自定义配置对象

### 引用对象

##### `interface` GetCustomConfigParams

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `success` | `(config: Record<string, unknown>) => void` | 接口调用成功的回调函数，参数为各配置项的键值对，值支持 string / number / boolean 类型 |
| `fail` | `(err: GetCustomConfigError) => void` | 接口调用失败的回调函数 |
| `complete` | `(res: Record<string, unknown> \| GetCustomConfigError) => void` | 接口调用结束的回调函数（调用成功、失败都会执行） |

##### `type` GetCustomConfigError

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `errorMsg` | `string` |  |
| `errorCode` | `string` |  |


### 示例代码

#### 回调方式获取自定义配置

```js
Page({
  onLoad() {
    ty.getCustomConfig({
      success(config) {
        console.log('自定义配置', config);
      },
      fail(err) {
        console.error('获取失败', err);
      },
    });
  },
});
```

#### Promise 方式获取自定义配置

```js
Page({
  async onLoad() {
    var config = await ty.getCustomConfig();
    console.log('自定义配置', config);
  },
});
```


### 注意事项

1. **配置缓存**：建议在应用启动时获取配置并缓存到全局变量中，避免频繁调用接口
2. **默认值处理**：始终为配置项设置默认值，确保在配置不存在时应用能正常运行
3. **类型检查**：获取配置后应该进行类型检查，确保数据类型符合预期
4. **错误处理**：妥善处理接口调用失败的情况，提供合理的降级策略
