---
title: config - é
ç½® API
sidebar_position: 5
---
> **@types** [IPublicModelEngineConfig](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/model/engine-config.ts)
> **@since** v1.0.0
## 模åç®ä»
é
置模åï¼è´è´£é
ç½®ç读ãåçæä½ã
## æ¹æ³
### get
è·åæå® key çå¼
```typescript
/**
* è·åæå® key çå¼
* get value by key
* @param key
* @param defaultValue
* @returns
*/
get(key: string, defaultValue?: any): any;
```
**示ä¾**
```typescript
import { config } from '@alilc/lowcode-engine';
config.get('keyA', true);
config.get('keyB', { a: 1 });
```
### set
设置æå® key çå¼
```typescript
/**
* 设置æå® key çå¼
* set value for certain key
* @param key
* @param value
*/
set(key: string, value: any): void;
```
**示ä¾**
```typescript
import { config } from '@alilc/lowcode-engine';
config.set('keyC', 1);
```
### has
夿æå® key æ¯å¦æå¼
```typescript
/**
* 夿æå® key æ¯å¦æå¼
* check if config has certain key configed
* @param key
* @returns
*/
has(key: string): boolean;
```
**示ä¾**
```typescript
import { config } from '@alilc/lowcode-engine';
config.has('keyD');
```
### setConfig
æ¹é设å¼ï¼set çå¯¹è±¡çæ¬
```typescript
/**
* æ¹é设å¼ï¼set çå¯¹è±¡çæ¬
* set multiple config key-values
* @param config
*/
setConfig(config: { [key: string]: any }): void;
```
**示ä¾**
```typescript
import { config } from '@alilc/lowcode-engine';
config.setConfig({ keyA: false, keyB: 2 });
```
### getPreference
è·åå
¨å± Preference 管çå¨ï¼ç¨äºç®¡çå
¨å±æµè§å¨ä¾§ç¨æ· Preferenceï¼å¦ Panel æ¯å¦éä½
```typescript
/**
* è·åå
¨å± Preference, ç¨äºç®¡çå
¨å±æµè§å¨ä¾§ç¨æ· Preferenceï¼å¦ Panel æ¯å¦éä½
* get global user preference manager, which can be use to store
* user`s preference in user localstorage, such as a panel is pinned or not.
* @returns {IPublicModelPreference}
* @since v1.1.0
*/
getPreference(): IPublicModelPreference;
```
ç¸å
³ç±»åï¼[IPublicModelPreference](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/model/preference.ts)
**@since v1.1.0**
示ä¾
```javascript
import { config } from '@alilc/lowcode-engine';
const panelName = 'outline-master-pane';
// 设置大纲æ 颿¿éä½ï¼å¨å¤§çº²æ 䏿¬¡éæ°æå¼æ¶çæ
config.getPreference().set(`${panelName}-pinned-status-isFloat`, false, 'skeleton')
```
## äºä»¶
### onceGot
è·åæå® key çå¼ï¼è¥æ¤æ¶è¿æªèµå¼ï¼åçå¾
ï¼è¥å·²æå¼ï¼åç´æ¥è¿åå¼
æ³¨ï¼æ¤å½æ°è¿å Promise å®ä¾
```typescript
/**
* è·åæå® key çå¼ï¼è¥æ¤æ¶è¿æªèµå¼ï¼åçå¾
ï¼è¥å·²æå¼ï¼åç´æ¥è¿åå¼
* æ³¨ï¼æ¤å½æ°è¿å Promise å®ä¾ï¼åªä¼æ§è¡ï¼fullfillï¼ä¸æ¬¡
* wait until value of certain key is set, will only be
* triggered once.
* @param key
* @returns
*/
onceGot(key: string): Promise