Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-uni-app-x-zh
提交
bb35bdd7
U
unidocs-uni-app-x-zh
项目概览
DCloud
/
unidocs-uni-app-x-zh
通知
144
Star
2
Fork
33
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
9
列表
看板
标记
里程碑
合并请求
11
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
unidocs-uni-app-x-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
9
Issue
9
列表
看板
标记
里程碑
合并请求
11
合并请求
11
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
bb35bdd7
编写于
3月 08, 2024
作者:
雪洛
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
docs: 更新UTSJSONObject文档
上级
6c0e80df
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
56 addition
and
0 deletion
+56
-0
docs/uts/data-type.md
docs/uts/data-type.md
+56
-0
未找到文件。
docs/uts/data-type.md
浏览文件 @
bb35bdd7
...
...
@@ -1358,6 +1358,62 @@ console.log(utsObj.getAny("address") as UTSJSONObject)
UTSJSONObject对象还有很多API,
[
详见
](
buildin-object-api/utsjsonobject.md
)
### web端注意事项
web端在处理对象字面量时会根据预期的对象字面量的类型来决定要不要转为UTSJSONObject。
在无法推导对象字面量预期的类型、类型为any或者类型兼容UTSJSONObject时,对象字面量才会转为UTSJSONObject
例如:
```
ts
type
Person
=
{
age
:
number
}
function
test
(
p
:
Person
)
{
console
.
log
(
p
)
}
test
({
age
:
1
})
// 此处的对象字面量会被转成类型Person的实例,而不是UTSJSONObject
let
a
=
{
age
:
1
}
// a为UTSJSONObject类型
let
b
:
Person
=
{
age
:
1
}
// b为Person的实例
let
c
=
{
age
:
1
}
as
Person
// c为Person的实例
```
使用三方js包还需注意,如果没有三方包的类型信息,所有三方包的导出都会按照any处理。
以lodash为例,下述代码在存在
`@types/lodash`
时和不存在
`@types/lodash`
时表现有差异。
```
ts
import
{
merge
}
from
'
lodash
'
merge
(
{
a
:
1
},
{
b
:
2
}
)
```
存在
`@types/lodash`
时merge的参数类型并非any或者兼容UTSJSONObject的类型,所以两个对象字面量均不会被转为UTSJSONObject
当不存在
`@types/lodash`
时,merge方法为any类型,其参数也是any类型,两个对象字面量均会被转为UTSJSONObject
如果希望某个对象字面量不会被转为UTSJSONObject,可以为其指定类型,写法如下:
两个对象字面量均不会被转为UTSJSONObject,注意
`Record<string, any>`
写法仅web端支持
```
ts
import
{
merge
}
from
'
lodash
'
merge
(
{
a
:
1
}
as
Record
<
string
,
any
>
,
{
b
:
2
}
as
Record
<
string
,
any
>
)
```
## type自定义类型@type
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录