Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-zh
提交
f9d5e1ca
unidocs-zh
项目概览
DCloud
/
unidocs-zh
通知
3039
Star
102
Fork
763
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
87
列表
看板
标记
里程碑
合并请求
59
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
87
Issue
87
列表
看板
标记
里程碑
合并请求
59
合并请求
59
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f9d5e1ca
编写于
10月 25, 2023
作者:
W
wanganxp
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
开发时类型
上级
8376ae62
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
67 addition
and
4 deletion
+67
-4
docs/uni-app-x/component/README.md
docs/uni-app-x/component/README.md
+8
-0
docs/uts/README.md
docs/uts/README.md
+1
-1
docs/uts/data-type.md
docs/uts/data-type.md
+58
-3
未找到文件。
docs/uni-app-x/component/README.md
浏览文件 @
f9d5e1ca
...
...
@@ -232,6 +232,10 @@ Uni`组件名(驼峰)`Element
</script>
```
**bug&tips**
- 目前uts组件,即封装原生ui给uni-app或uni-app x的页面中使用,类型与内置组件的 Uni`组件名(驼峰)`Element 方式相同。目前没有代码提示,未来不排除更换方案的可能。
### easycom组件调用方法或设置属性@method_easycom
> 3.93+ 支持(暂不支持 uni_modules 目录下的组件)
...
...
@@ -311,6 +315,10 @@ component1组件符合[easycom规范](https://uniapp.dcloud.net.cn/component/#ea
</script>
```
**bug&tips**
- 目前uni_modules下的easycom组件还不支持。此时只能使用下一种方式callMethod。
### 其它自定义组件的方法调用使用callMethod@$callMethod
如果不是内置组件,也不是easycom组件,那么无法使用`.`操作符了。
...
...
docs/uts/README.md
浏览文件 @
f9d5e1ca
...
...
@@ -85,7 +85,7 @@ str = "hello world"; // 报错,不允许重新赋值
*
编译至 Kotlin 平台时,等同于 Kotlin 平台的 var(允许重新赋值)
-
swift 中 let 是定义常量,而 uts 和 ts 中,let 是定义变量。注意勿混淆。
-
类型定义的冒号,左右可以有一个空格,也可以没有空格。
`let str:string`
和
`let str : string`
和
`let str :string`
和
`let str: string`
都是合法的。
-
不支持 TypeScript 中的联合类型
-
联合类型仅支持
[
|null
](
data-type.md#null
)
(即可为空) 和
[
字面量联合类型
](
data-type.md#literal-union-type
)
。不支持其他方式的联合类型。
### 变量命名规则
...
...
docs/uts/data-type.md
浏览文件 @
f9d5e1ca
...
...
@@ -21,6 +21,8 @@ UTS 的类型有:
详细的类型判断详见操作符文档:
[
typeof
](
operator.md#typeof
)
和
[
instanceof
](
operator.md#instanceof
)
除了上述
`运行时类型`
,uts还有
`开发时类型`
的概念,指为了在开发期间ide可以更好的进行代码提示和校验,但在编译后这些类型会被擦除,变成
`运行时类型`
。
[
详见
](
#devtype
)
## 布尔值(boolean)
布尔是简单的基础类型,只有2个值:
`true`
和
`false`
。
...
...
@@ -392,8 +394,6 @@ let str5 = nstr3 as string // 类型为string
*
编译至 Kotlin 平台时,最大长度受系统内存的限制,超出限制会报错:
`java.lang.OutOfMemoryError: char[] of length xxx would overflow`
。
*
编译至 Swift 平台时,最大长度也受系统内存的限制,超出限制目前没有返回信息。
<!-- SPECIALSTRINGJSON.specialString -->
## any类型 @any
有时会遇到在编程阶段还不清楚类型的变量。这些值可能来自于动态的内容,比如来自用户输入或第三方代码库。
...
...
@@ -439,7 +439,7 @@ let b: string | null = "abc" // 可以设置为空
b
=
null
// ok
```
但这不代表 uts 在App端支持广泛的联合类型,实际上
仅有可为空才能这么写。即
`let b : string | number`
仅能在编译为js时使用,因为kotlin和swift都不支持联合类型。
但这不代表 uts 在App端支持广泛的联合类型,实际上
可为空才能这么写。而
`let b : string | number`
仅能在编译为js时使用,因为kotlin和swift都不支持联合类型。
现在,如果你调用 a 的方法或者访问它的属性,它保证不会导致 NPE,这样你就可以放心地使用:
...
...
@@ -1583,3 +1583,58 @@ console.log(obj.age) //25
js中的 undefined类型表示变量被定义,但是未赋值或初始化。
uts 编译为kotlin和swift时不支持 undefined。即不允许变量未赋值。每个有类型的变量都需要初始化或赋值。
## 开发时类型@devtype
uts有
`运行时类型`
和
`开发时类型`
的概念区别。
开发时类型,指为了在开发期间ide可以更好的进行代码提示和校验,但在编译后这些类型会被擦除,变成
`运行时类型`
。
目前支持的
`开发时类型`
有:
### 相同运行时类型的字面量联合类型@literal-union-type
字面量联合类型,指相同类型的数字或字符串字面量,把多个字面量值以或的方式赋值给一个类型。
它常常用于在开发阶段的值域约束。
比如以下例子里,a1的值域只能是302或404或500,而b1的值域只能是"get"或"post"。
```
ts
// 注意不要写在uvue页面的export default里面
type
a
=
302
|
404
|
500
let
a1
:
a
=
404
// 运行时类型是number
console
.
log
(
a1
);
type
b
=
"
get
"
|
"
post
"
let
b1
:
b
=
"
get
"
// 运行时类型是string
console
.
log
(
b1
);
if
(
b1
==
""
)
{}
//光标在双引号中间时,代码助手会提示get和post这2个候选
b1
==
"
get1
"
// 当为b1赋值不在值域范围的新值时,ide会报红
```
相同字面量联合类型,在方法的参数值域定义里很常见。
但有几个注意:
1.
这些字面量必须是一个类型,或者统一是数字,或者统一是字符串。
2.
字面量联合类型只是
`开发时类型`
,在运行时,类型会变为number或string。
### 特殊值域string@ide-string
很多数据,虽然类型是字符串,但其实有特殊的值域范围。
上一节提到的字符串字面量联合类型,其实是一种枚举型的值域范围约束。
但很多值域无法通过枚举表达。
\n
比如ColorString,代表一个合法的颜色字符串,"red"、"#000",这些是它的合法值域。
\n
再比如IDString代表页面上合法的组件的id属性值清单,ImageURIString则代表工程下合法的图片路径清单。
HBuilder支持给变量定义特殊值域string类型,这些类型在HBuilder里都可以得到更好的代码提示和语法校验。
当然这也是开发时类型,在运行时,这些类型会统一抹平为string类型。
另外目前特殊值域string仅支持在d.ts里书写,暂不支持在运行代码中使用。
<!-- SPECIALSTRINGJSON.specialString -->
## 联合类型
目前uts支持的
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录