1# @arkts.lang (ArkTS Base Capability)
2
3The module provides the basic type definition of ArkTS. Currently, the **ISendable** interface is provided.
4
5> **NOTE**
6>
7> The initial APIs of this module are supported since API version 12. Newly added APIs will be marked with a superscript to indicate their earliest API version.
8
9## Modules to Import
10
11```ts
12import { lang } from '@kit.ArkTS';
13```
14
15## lang.ISendable
16Parent type of all sendable types except null and undefined. It does not have any necessary methods or properties.
17
18An **ISendable** object is an instance of the Object type in ArkTS.
19
20**ISendable** is mainly used when you want to customize the sendable data structure. Container types in the ArkTS common library implicitly inherit and implement **ISendable**.
21
22**Example**
23
24```ts
25// Construct a custom sendable data structure.
26@Sendable
27class CustomData implements lang.ISendable {
28    data1: number;
29    data2: string;
30    constructor(data1: number, data2: string) {
31        this.data1 = data1;
32        this.data2 = data2;
33    }
34}
35```
36