Javascript SDK REST API 和 WebSocket 实时推送接口 金融数据API文档 SDK & 开发工具 iTick 官方 Javascript SDK,提供基础、股票、指数、期货、基金、外汇、加密货币数据的 REST API 查询和 WebSocket 实时数据订阅功能。
Javascript SDK 文档
Javascript 版本的 iTick API SDK,提供基础、股票、指数、期货、基金、外汇、加密货币数据的 REST API 查询和 WebSocket 实时数据订阅功能。用于访问 iTick API 的实时金融市场数据。
特性
- 全面的市场覆盖:访问全球金融市场,包括股票、加密货币、外汇、指数、期货和基金
- 实时数据:基于 WebSocket 的实时数据流,支持自动重连
- RESTful API:简洁直观的 REST API,用于获取历史数据和快照
- 类型安全:完整的 TypeScript 支持和全面的类型定义
- 自动重连:内置自动重连机制(5 秒间隔,可设置无限次尝试)
- 心跳保活:自动 ping/pong 机制(30 秒间隔)保持连接稳定
- 模块化设计:按资产类型划分独立模块,结构更清晰
- 灵活订阅:支持报价、盘口、成交和 K 线数据订阅
支持的浏览器
| Chrome | Firefox | Safari | Opera | Edge |
|---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() |
| Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ |
安装
项目安装
使用 npm:
npm install @itick/browser-sdk
使用 yarn:
yarn add @itick/browser-sdk
使用 pnpm:
pnpm add @itick/browser-sdk
CDN
<!-- Using unpkg CDN -->
<script src="https://unpkg.com/@itick/browser-sdk@latest/dist/itick-sdk.min.js"></script>
<!-- Or using jsDelivr CDN -->
<script src="https://cdn.jsdelivr.net/npm/@itick/browser-sdk@latest/dist/itick-sdk.min.js"></script>
<script>
const { BaseClient, StockClient, CryptoClient, ForexClient, IndicesClient, FutureClient, FundClient } = window.iTickSDK;
</script>
快速开始
基础用法
import { StockClient } from "@itick/browser-sdk";
// 可选配置 (默认host api.itick.org)其他模块配置参照此配置
const options = {
baseURL: "https://api-free.itick.org",
wssURL: "wss://api-free.itick.org",
};
// API Token
const token = process.env.ITICK_TOKEN;
// 初始化客户端
const client = new StockClient(token, options);
// 获取股票报价
async function getQuote() {
try {
const response = await client.getQuote({ region: "US", code: "AAPL" });
if (response.code === 0 && response.data) {
console.log("最新价格:", response.data.ld);
console.log("涨跌幅:", response.data.chp);
}
} catch (error) {
console.error("错误:", error.message);
}
}
getQuote();
通过 WebSocket 获取实时数据
import { CryptoClient } from "@itick/browser-sdk";
const client = new CryptoClient(token);
// 创建带订阅数据的 WebSocket 连接 SDK内部已处理连接和重连后直接订阅 subscribeData 数据 无需再发送订阅数据
const socket = client.createSocket({
maxReconnectTimes: 10, // 最大重连次数 不传则使用默认值 0 无限制重连
pingInterval: 30000, // ping 间隔 默认30 秒
reconnectInterval: 5000, // 重连间隔 默认5 秒
subscribeData: {
codes: ["BTCUSDT$BA", "ETHUSDT$BA"],
types: ["quote", "tick"],
},
});
// 创建自定义 WebSocket 连接
const socket = client.createSocket();
// 连接成功或者重连连成功后发送订阅数据
socket.onSocketOpen(() => {
socket.subscribeData({
codes: ["BTCUSDT$BA", "ETHUSDT$BA"],
types: ["quote", "tick"],
});
});
// 处理接收到的消息
socket.onSocketMessage((res) => {
console.log("收到数据:", res);
});
// 处理错误
socket.onSocketError((error) => {
console.error("WebSocket 错误:", error);
});
// 完成后断开连接
// socket.disconnectSocket();
API 参考
基础模块
金融产品清单和市场节假日信息以及开市休市时间信息。
import { BaseClient } from "@itick/browser-sdk";
const client = new BaseClient(token);
// 获取品种列表
await client.getSymbolList({ type: "stock", region: "US" });
await client.getSymbolList({ type: "crypto", region: "BA" });
await client.getSymbolList({ type: "forex", region: "GB" });
// 获取市场假期
await client.getSymbolHolidays("US");
await client.getSymbolHolidays("HK");
BaseClient 方法参考表
| 方法名 | 参数说明 | 返回值类型 | 描述 | 详细参数 |
|---|---|---|---|---|
getSymbolList | options: Object- type:enum (产品类型,如 stock,forex,fund,future,indices) - region:string (市场区域代码,如 US, BA, GB 等) | Promise<APIResponse<SymbolListData[]>> | 获取指定市场和资产类型的金融产品清单(品种列表)。 | iTick 产品清单 |
getSymbolHolidays | region: string (市场区域代码,如 US, HK 等) | Promise<APIResponse<HolidayData[]>> | 获取指定市场的节假日信息,包括开市和休市时间安排。 | iTick 市场假期 |
股票模块
访问美股、港股等全球股票市场数据。
import { StockClient } from "@itick/browser-sdk";
const client = new StockClient(token);
// 获取单只股票信息
await client.getInfo({ region: "US", code: "AAPL" });
// 获取实时报价
await client.getQuote({ region: "US", code: "AAPL" });
// 获取盘口深度
await client.getDepth({ region: "US", code: "AAPL" });
// 获取最新成交
await client.getTick({ region: "US", code: "AAPL" });
// 获取 K 线数据
await client.getKline({
region: "US",
code: "AAPL",
interval: "5m",
limit: 100,
});
// 批量查询
await client.getQuotes({ region: "US", codes: ["AAPL", "MSFT", "GOOGL"] });
await client.getDepths({ region: "US", codes: ["AAPL", "MSFT"] });
await client.getTicks({ region: "US", codes: ["AAPL", "MSFT"] });
await client.getKlines({
region: "US",
codes: ["AAPL", "MSFT"],
interval: "1d",
limit: 50,
});
// IPO 信息
await client.getIPO({ region: "US", code: "RIVN" });
// 除权因子
await client.getSplit({ region: "US", code: "AAPL" });
StockClient 方法参考表
| 方法名 | 参数说明 | 返回值类型 | 描述 | 详细参数 |
|---|---|---|---|---|
getInfo | params: Object- region: string (市场编码,如 US, HK 等)- code: string (股票代码,如 AAPL)- exchange?:string (可选, 上市交易所, 如 NYSE, NASDAQ等) | Promise<APIResponse<StockInfo>> | 获取股票基本信息 | iTick 股票信息 |
getIPO | params: Object- region: string (市场编码,如 US, HK 等)- code: string (股票代码,如 AAPL) | Promise<APIResponse<StockIPO>> | 获取股票 IPO 信息 | iTick 股票 IPO |
getSplit | params: Object- region: string (市场编码,如 US, HK 等)- code: string (股票代码,如 AAPL) | Promise<APIResponse<StockSplit>> | 获取股票除权除息信息 | iTick 股票除权因子 |
getTick | params: Object- region: string (市场编码,如 US, HK 等)- code: string (股票代码,如 AAPL) | Promise<APIResponse<TickData>> | 获取单个股票最新成交行情 | iTick 股票实时成交 |
getQuote | params: Object- region: string (市场编码,如 US, HK 等)- code: string (股票代码,如 AAPL) | Promise<APIResponse<QuoteData>> | 获取单个股票最新报价 | iTick 股票实时报价 |
getDepth | params: Object- region: string (市场编码,如 US, HK 等)- code: string (股票代码,如 AAPL) | Promise<APIResponse<DepthData>> | 获取单个股票最新盘口 | iTick 股票实时盘口 |
getKline | options: GetKlineOptions- region: string (市场编码)- code: string (股票代码)- interval: KlineType (K 线周期类型)- limit: number (返回数据条数,最大 500)- et?: string | number (可选,结束时间戳) | Promise<APIResponse<KlineData[]>> | 获取单个股票 K 线数据 | iTick 股票 K 线 |
getTicks | params: Object- region: string (市场编码)- codes: string[] | string (股票代码列表) | Promise<APIResponse<TickDataMap>> | 获取多个股票最新成交行情 | iTick 股票批量成交 |
getQuotes | params: Object- region: string (市场编码)- codes: string[] | string (股票代码列表) | Promise<APIResponse<QuoteDataMap>> | 获取多个股票最新报价 | iTick 股票批量报价 |
getDepths | params: Object- region: string (市场编码)- codes: string[] | string (股票代码列表) | Promise<APIResponse<DepthDataMap>> | 获取多个股票最新盘口 | iTick 股票批量盘口 |
getKlines | options: GetKlinesOptions- region: string (市场编码)- codes: string[] | string (股票代码列表)- interval: KlineType (K 线周期类型)- limit: number (返回数据条数,最大 500)- et?: string | number (可选,结束时间戳) | Promise<APIResponse<KlineDataMap>> | 获取多个股票 K 线数据 | iTick 股票批量 K 线 |
createSocket | options?: CreateSocketOptions (可选,WebSocket 连接选项) | SocketClient | 创建 WebSocket 连接用于实时数据订阅 | iTick WebSocket 股票 |
加密货币模块
访问多个交易所的加密货币市场数据。
import { CryptoClient } from "@itick/browser-sdk";
const client = new CryptoClient(token);
// 获取实时数据
await client.getQuote({ region: "BA", code: "BTCUSDT" });
await client.getDepth({ region: "BA", code: "ETHUSDT" });
await client.getTick({ region: "BA", code: "BTCUSDT" });
// 获取 K 线数据
await client.getKline({
region: "BA",
code: "BTCUSDT",
interval: "1h",
limit: 100,
});
// 批量查询
await client.getQuotes({ region: "BA", codes: ["BTCUSDT", "ETHUSDT"] });
CryptoClient 方法参考表
| 方法名 | 参数说明 | 返回值类型 | 描述 | 详细参数 |
|---|---|---|---|---|
getTick | params: Object- region: string (市场编码,如 BA, BT, PB 等)- code: string (标的代码,如 BTCUSDT) | Promise<APIResponse<TickData>> | 获取单个加密货币最新成交行情 | iTick 加密货币实时成交 |
getQuote | params: Object- region: string (市场编码,如 BA, BT, PB 等)- code: string (标的代码,如 BTCUSDT) | Promise<APIResponse<QuoteData>> | 获取单个加密货币最新报价 | iTick 加密货币实时报价 |
getDepth | params: Object- region: string (市场编码,如 BA, BT, PB 等)- code: string (标的代码,如 BTCUSDT) | Promise<APIResponse<DepthData>> | 获取单个加密货币最新盘口 | iTick 加密货币实时盘口 |
getKline | options: GetKlineOptions- region: string (市场编码)- code: string (标的代码)- interval: KlineType (K 线周期类型)- limit: number (返回数据条数,最大 500)- et?: string | number (可选,结束时间戳) | Promise<APIResponse<KlineData[]>> | 获取单个加密货币 K 线数据 | iTick 加密货币 K 线 |
getTicks | params: Object- region: string (市场编码)- codes: string[] | string (标的代码列表) | Promise<APIResponse<TickDataMap>> | 获取多个加密货币最新成交行情 | iTick 加密货币批量成交 |
getQuotes | params: Object- region: string (市场编码)- codes: string[] | string (标的代码列表) | Promise<APIResponse<QuoteDataMap>> | 获取多个加密货币最新报价 | iTick 加密货币批量报价 |
getDepths | params: Object- region: string (市场编码)- codes: string[] | string (标的代码列表) | Promise<APIResponse<DepthDataMap>> | 获取多个加密货币最新盘口 | iTick 加密货币批量盘口 |
getKlines | options: GetKlinesOptions- region: string (市场编码)- codes: string[] | string (标的代码列表)- interval: KlineType (K 线周期类型)- limit: number (返回数据条数,最大 500)- et?: string | number (可选,结束时间戳) | Promise<APIResponse<KlineDataMap>> | 获取多个加密货币 K 线数据 | iTick 加密货币批量 K 线 |
createSocket | options?: CreateSocketOptions (可选,WebSocket 连接选项) | SocketClient | 创建 WebSocket 连接用于实时数据订阅 | iTick WebSocket 加密货币 |
外汇模块
访问外汇市场数据。
import { ForexClient } from "@itick/browser-sdk";
const client = new ForexClient(token);
await client.getQuote({ region: "GB", code: "EURUSD" });
await client.getDepth({ region: "GB", code: "GBPUSD" });
await client.getTick({ region: "GB", code: "USDJPY" });
await client.getKline({ region: "GB", code: "EURUSD", interval: "1d", limit: 50 });
ForexClient 方法参考表
| 方法名 | 参数说明 | 返回值类型 | 描述 | 详细参数 |
|---|---|---|---|---|
getTick | params: Object- region: string (市场编码,如 GB 等)- code: string (标的代码,如 EURUSD) | Promise<APIResponse<TickData>> | 获取单个外汇对最新成交行情 | iTick 外汇实时成交 |
getQuote | params: Object- region: string (市场编码,如 GB 等)- code: string (标的代码,如 EURUSD) | Promise<APIResponse<QuoteData>> | 获取单个外汇对最新报价 | iTick 外汇实时报价 |
getDepth | params: Object- region: string (市场编码,如 GB 等)- code: string (标的代码,如 EURUSD) | Promise<APIResponse<DepthData>> | 获取单个外汇对最新盘口 | iTick 外汇实时盘口 |
getKline | options: GetKlineOptions- region: string (市场编码)- code: string (标的代码)- interval: KlineType (K 线周期类型)- limit: number (返回数据条数,最大 500)- et?: string | number (可选,结束时间戳) | Promise<APIResponse<KlineData[]>> | 获取单个外汇对 K 线数据 | iTick 外汇 K 线 |
getTicks | params: Object- region: string (市场编码)- codes: string[] | string (标的代码列表) | Promise<APIResponse<TickDataMap>> | 获取多个外汇对最新成交行情 | iTick 外汇批量成交 |
getQuotes | params: Object- region: string (市场编码)- codes: string[] | string (标的代码列表) | Promise<APIResponse<QuoteDataMap>> | 获取多个外汇对最新报价 | iTick 外汇批量报价 |
getDepths | params: Object- region: string (市场编码)- codes: string[] | string (标的代码列表) | Promise<APIResponse<DepthDataMap>> | 获取多个外汇对最新盘口 | iTick 外汇批量盘口 |
getKlines | options: GetKlinesOptions- region: string (市场编码)- codes: string[] | string (标的代码列表)- interval: KlineType (K 线周期类型)- limit: number (返回数据条数,最大 500)- et?: string | number (可选,结束时间戳) | Promise<APIResponse<KlineDataMap>> | 获取多个外汇对 K 线数据 | iTick 外汇批量 K 线 |
createSocket | options?: CreateSocketOptions (可选,WebSocket 连接选项) | SocketClient | 创建 WebSocket 连接用于实时数据订阅 | iTick WebSocket 外汇 |
指数模块
访问全球股票指数数据。
import { IndicesClient } from "@itick/browser-sdk";
const client = new IndicesClient(token);
await client.getQuote({ region: "US", code: "SPX" });
await client.getDepth({ region: "US", code: "NDX" });
await client.getKline({ region: "US", code: "DJI", interval: "1w", limit: 20 });
IndicesClient 方法参考表
| 方法名 | 参数说明 | 返回值类型 | 描述 | 详细参数 |
|---|---|---|---|---|
getTick | params: Object- region: string (市场编码,如 US, GB 等)- code: string (标的代码,如 DJI, SPX) | Promise<APIResponse<TickData>> | 获取单个指数最新成交行情 | iTick 指数实时成交 |
getQuote | params: Object- region: string (市场编码,如 US, GB 等)- code: string (标的代码,如 DJI, SPX) | Promise<APIResponse<QuoteData>> | 获取单个指数最新报价 | iTick 指数实时报价 |
getDepth | params: Object- region: string (市场编码,如 US, GB 等)- code: string (标的代码,如 DJI, SPX) | Promise<APIResponse<DepthData>> | 获取单个指数最新盘口 | iTick 指数实时盘口 |
getKline | options: GetKlineOptions- region: string (市场编码)- code: string (标的代码)- interval: KlineType (K 线周期类型)- limit: number (返回数据条数,最大 500)- et?: string | number (可选,结束时间戳) | Promise<APIResponse<KlineData[]>> | 获取单个指数 K 线数据 | iTick 指数 K 线 |
getTicks | params: Object- region: string (市场编码)- codes: string[] | string (标的代码列表) | Promise<APIResponse<TickDataMap>> | 获取多个指数最新成交行情 | iTick 指数批量成交 |
getQuotes | params: Object- region: string (市场编码)- codes: string[] | string (标的代码列表) | Promise<APIResponse<QuoteDataMap>> | 获取多个指数最新报价 | iTick 指数批量报价 |
getDepths | params: Object- region: string (市场编码)- codes: string[] | string (标的代码列表) | Promise<APIResponse<DepthDataMap>> | 获取多个指数最新盘口 | iTick 指数批量盘口 |
getKlines | options: GetKlinesOptions- region: string (市场编码)- codes: string[] | string (标的代码列表)- interval: KlineType (K 线周期类型)- limit: number (返回数据条数,最大 500)- et?: string | number (可选,结束时间戳) | Promise<APIResponse<KlineDataMap>> | 获取多个指数 K 线数据 | iTick 指数批量 K 线 |
createSocket | options?: CreateSocketOptions (可选,WebSocket 连接选项) | SocketClient | 创建 WebSocket 连接用于实时数据订阅 | iTick WebSocket 指数 |
期货模块
访问期货市场数据。
import { FutureClient } from "@itick/browser-sdk";
const client = new FutureClient(token);
await client.getQuote({ region: "US", code: "ES" });
await client.getDepth({ region: "US", code: "NQ" });
await client.getKline({ region: "US", code: "CL", interval: "5m", limit: 100 });
FutureClient 方法参考表
| 方法名 | 参数说明 | 返回值类型 | 描述 | 详细参数 |
|---|---|---|---|---|
getTick | params: Object- region: string (市场编码,如 US, CN, HK 等)- code: string (标的代码,如 CL, GC) | Promise<APIResponse<TickData>> | 获取单个期货合约最新成交行情 | iTick 期货实时成交 |
getQuote | params: Object- region: string (市场编码,如 US, CN, HK 等)- code: string (标的代码,如 CL, GC) | Promise<APIResponse<QuoteData>> | 获取单个期货合约最新报价 | iTick 期货实时报价 |
getDepth | params: Object- region: string (市场编码,如 US, CN, HK 等)- code: string (标的代码,如 CL, GC) | Promise<APIResponse<DepthData>> | 获取单个期货合约最新盘口 | iTick 期货实时盘口 |
getKline | options: GetKlineOptions- region: string (市场编码)- code: string (标的代码)- interval: KlineType (K 线周期类型)- limit: number (返回数据条数,最大 500)- et?: string | number (可选,结束时间戳) | Promise<APIResponse<KlineData[]>> | 获取单个期货合约 K 线数据 | iTick 期货 K 线 |
getTicks | params: Object- region: string (市场编码)- codes: string[] | string (标的代码列表) | Promise<APIResponse<TickDataMap>> | 获取多个期货合约最新成交行情 | iTick 期货批量成交 |
getQuotes | params: Object- region: string (市场编码)- codes: string[] | string (标的代码列表) | Promise<APIResponse<QuoteDataMap>> | 获取多个期货合约最新报价 | iTick 期货批量报价 |
getDepths | params: Object- region: string (市场编码)- codes: string[] | string (标的代码列表) | Promise<APIResponse<DepthDataMap>> | 获取多个期货合约最新盘口 | iTick 期货批量盘口 |
getKlines | options: GetKlinesOptions- region: string (市场编码)- codes: string[] | string (标的代码列表)- interval: KlineType (K 线周期类型)- limit: number (返回数据条数,最大 500)- et?: string | number (可选,结束时间戳) | Promise<APIResponse<KlineDataMap>> | 获取多个期货合约 K 线数据 | iTick 期货批量 K 线 |
createSocket | options?: CreateSocketOptions (可选,WebSocket 连接选项) | SocketClient | 创建 WebSocket 连接用于实时数据订阅 | iTick WebSocket 期货 |
基金模块
访问共同基金和 ETF 数据。
import { FundClient } from "@itick/browser-sdk";
const client = new FundClient(token);
await client.getQuote({ region: "US", code: "VOO" });
await client.getDepth({ region: "US", code: "QQQ" });
await client.getKline({ region: "US", code: "SPY", interval: "1d", limit: 100 });
FundClient 方法参考表
| 方法名 | 参数说明 | 返回值类型 | 描述 | 详细参数 |
|---|---|---|---|---|
getTick | params: Object- region: string (市场编码,如 US, HK 等)- code: string (标的代码,如 SPY, QQQ) | Promise<APIResponse<TickData>> | 获取单个基金最新成交行情 | iTick 基金实时成交 |
getQuote | params: Object- region: string (市场编码,如 US, HK 等)- code: string (标的代码,如 SPY, QQQ) | Promise<APIResponse<QuoteData>> | 获取单个基金最新报价 | iTick 基金实时报价 |
getDepth | params: Object- region: string (市场编码,如 US, HK 等)- code: string (标的代码,如 SPY, QQQ) | Promise<APIResponse<DepthData>> | 获取单个基金最新盘口 | iTick 基金实时盘口 |
getKline | options: GetKlineOptions- region: string (市场编码)- code: string (标的代码)- interval: KlineType (K 线周期类型)- limit: number (返回数据条数,最大 500)- et?: string | number (可选,结束时间戳) | Promise<APIResponse<KlineData[]>> | 获取单个基金 K 线数据 | iTick 基金 K 线 |
getTicks | params: Object- region: string (市场编码)- codes: string[] | string (标的代码列表) | Promise<APIResponse<TickDataMap>> | 获取多个基金最新成交行情 | iTick 基金批量成交 |
getQuotes | params: Object- region: string (市场编码)- codes: string[] | string (标的代码列表) | Promise<APIResponse<QuoteDataMap>> | 获取多个基金最新报价 | iTick 基金批量报价 |
getDepths | params: Object- region: string (市场编码)- codes: string[] | string (标的代码列表) | Promise<APIResponse<DepthDataMap>> | 获取多个基金最新盘口 | iTick 基金批量盘口 |
getKlines | options: GetKlinesOptions- region: string (市场编码)- codes: string[] | string (标的代码列表)- interval: KlineType (K 线周期类型)- limit: number (返回数据条数,最大 500)- et?: string | number (可选,结束时间戳) | Promise<APIResponse<KlineDataMap>> | 获取多个基金 K 线数据 | iTick 基金批量 K 线 |
createSocket | options?: CreateSocketOptions (可选,WebSocket 连接选项) | SocketClient | 创建 WebSocket 连接用于实时数据订阅 | iTick WebSocket 基金 |
WebSocket 实时数据
支持的数据类型
quote:实时报价depth:盘口深度tick:最新成交kline@1m或kline@1:1 分钟 K 线kline@5m或kline@2:5 分钟 K 线kline@15m或kline@3:15 分钟 K 线kline@30m或kline@4:30 分钟 K 线kline@1h或kline@5:1 小时 K 线kline@2h或kline@6:2 小时 K 线(仅加密货币)kline@4h或kline@7:4 小时 K 线(仅加密货币)kline@1d或kline@8:日线kline@1w或kline@9:周线kline@1M或kline@10:月线
连接选项
const socket = client.createSocket({
maxReconnectTimes: 10, // 最大重连次数(0 = 无限)
reconnectInterval: 5000, // 重连间隔(毫秒)
pingInterval: 30000, // Ping 间隔(毫秒)
subscribeData: {
codes: ["AAPL$US", "MSFT$US"],
types: ["quote", "tick", "kline@1m"],
},
});
事件处理器
// 连接打开
socket.onSocketOpen(() => {
console.log("已连接!");
});
// 接收消息
socket.onSocketMessage((data) => {
console.log("收到数据:", data);
});
// 发生错误
socket.onSocketError((error) => {
console.error("错误:", error);
});
// 连接关闭
socket.onSocketClose(() => {
console.log("已断开");
});
// 检查连接状态
const isConnected = socket.checkSocketConnected();
// 断开连接
socket.disconnectSocket();
动态订阅
// 连接后订阅
socket.subscribeSocket({
ac: "subscribe",
types: ["quote", "depth"],
codes: ["TSLA$US", "NVDA$US"],
});
// 取消订阅
socket.subscribeSocket({
ac: "unsubscribe",
types: ["tick"],
codes: ["AAPL$US"],
});
错误处理
try {
const response = await client.getQuote({ region: "US", code: "AAPL" });
if (response.code !== 0) {
console.error("API 错误:", response.msg);
return;
}
// 处理数据
console.log(response.data);
} catch (error) {
if (error instanceof Error) {
console.error("网络错误:", error.message);
}
}
TypeScript 支持
完整的 TypeScript 支持和全面的类型定义:
import type {
APIResponse,
QuoteData,
SocketKlineData,
SocketTickData,
SocketDepthData,
SocketQuoteData,
} from "@itick/browser-sdk";
// 类型安全的响应
const response: APIResponse<QuoteData> = await client.getQuote({
region: "US",
code: "AAPL",
});
// 类型安全的 WebSocket 消息
socket.onSocketMessage((response) => {
const { code, data, msg, resAc } = response;
if (data?.type === "quote") {
const quoteData: SocketQuoteData = data;
}
if (data?.type === "kline@1") {
const klineData: SocketKlineData = data;
}
if (data?.type === "tick") {
const tickData: SocketTickData = data;
}
if (data?.type === "depth") {
const depthData: SocketDepthData = data;
}
});




