Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
sss宋
unidocs-zh
提交
9ebb3533
unidocs-zh
项目概览
sss宋
/
unidocs-zh
与 Fork 源项目一致
Fork自
DCloud / unidocs-zh
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
9ebb3533
编写于
8月 29, 2023
作者:
DCloud-yyl
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update operator.md
上级
2123fceb
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
58 addition
and
58 deletion
+58
-58
docs/uts/operator.md
docs/uts/operator.md
+58
-58
未找到文件。
docs/uts/operator.md
浏览文件 @
9ebb3533
...
...
@@ -340,63 +340,7 @@ a as string // 异常
另外:当
`as`
用在
[
模块
](
./module.md
)
导入时,它和类型断言无关,其功能为
[
指定别名
](
./module.md#指定别名
)
。
## 实例类型判断
使用
`instanceof`
运算符执行运行时检查,以标识对象是否符合给定类型。
| 类型 | 结果 |
| ------------------------------------------------------------------------------------ | ---------------- |
| Boolean | 编译报错,不支持 |
| Number | 编译报错,不支持 |
| String | 编译报错,不支持 |
| 平台专有数字类型: Int, Float, Double, Long ... | true or false |
| typeof 结果为 "object" 的类型(包含但不限于:Date, Array, Map, UTSJSONObject, 自定义类型) | true or false |
对于 Boolean, Number, String 类型的实例判断,请使用
`typeof`
.
```
ts
function
fn
(
obj
:
any
)
{
if
(
obj
instanceof
Date
)
{
// ...
}
}
```
包含泛型的类型,不能缺省泛型信息。如不需要判断具体的泛型类型,可以使用
`*`
表示任意泛型类型:
```
ts
function
fn
(
obj
:
any
)
{
if
(
obj
instanceof
Map
<*
,
*>
)
{
// ...
}
}
```
已经可以明确判断类型兼容性时无需使用
`instanceof`
在运行时进行判断,编译阶段会检查出这种情况会报错或者警告:
```
ts
function
fn
(
obj
:
Date
)
{
if
(
obj
instanceof
Date
)
{
// ...
}
}
```
对于数字类型,
`instanceof`
细化了判断逻辑,除了能判断是否是 number, 还能判断是否是 Int Float Double Int64 Long ... 等所有平台专有数字类型。
```
ts
let
a
:
Double
=
3.14
let
b
:
Int
=
2
a
instanceof
Double
//true
b
instanceof
Int
//true
```
## 实例类型获取
## typeof实例类型获取@typeof
使用
`typeof`
运算符获取操作数的类型,返回一个表示类型的字符串。
...
...
@@ -455,7 +399,7 @@ typeof [1, 2, 3] == "object" //true
```
使用 typeof 获取 number 类型时,在安卓平台上存在一些特殊,将 number 类型赋值给 any 类型变量时,会根据数值将类型转变为
实际平台专有数字类型。
将 number 类型赋值给 any 类型变量时,在安卓平台上存在一些特殊,会根据数值将类型转变为实际平台专有数字类型,使用 typeof 获取此 any 类型变量将会返回
实际平台专有数字类型。
```
ts
...
...
@@ -477,3 +421,59 @@ typeof c == "number" //false 真实返回的是 "Double"
```
## instanceof实例类型判断@instanceof
使用
`instanceof`
运算符执行运行时检查,以标识对象是否符合给定类型。
| 类型 | 结果 |
| ------------------------------------------------------------------------------------ | ---------------- |
| Boolean | 编译报错,不支持 |
| Number | 编译报错,不支持 |
| String | 编译报错,不支持 |
| 平台专有数字类型: Int, Float, Double, Long ... | true or false |
| typeof 结果为 "object" 的类型(包含但不限于:Date, Array, Map, UTSJSONObject, 自定义类型) | true or false |
对于 Boolean, Number, String 类型的实例判断,请使用
`typeof`
.
```
ts
function
fn
(
obj
:
any
)
{
if
(
obj
instanceof
Date
)
{
// ...
}
}
```
包含泛型的类型,不能缺省泛型信息。如不需要判断具体的泛型类型,可以使用
`*`
表示任意泛型类型:
```
ts
function
fn
(
obj
:
any
)
{
if
(
obj
instanceof
Map
<*
,
*>
)
{
// ...
}
}
```
已经可以明确判断类型兼容性时无需使用
`instanceof`
在运行时进行判断,编译阶段会检查出这种情况会报错或者警告:
```
ts
function
fn
(
obj
:
Date
)
{
if
(
obj
instanceof
Date
)
{
// ...
}
}
```
对于数字类型,
`instanceof`
细化了判断逻辑,除了能判断是否是 number, 还能判断是否是 Int Float Double Int64 Long ... 等所有平台专有数字类型。
```
ts
let
a
:
Double
=
3.14
let
b
:
Int
=
2
a
instanceof
Double
//true
b
instanceof
Int
//true
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录