提交 74f90d1d 编写于 作者: D DCloud_LXH

fix: uts 链接错误

上级 9fa99b3f
...@@ -30,7 +30,7 @@ uts这门语言,有2个用途: ...@@ -30,7 +30,7 @@ uts这门语言,有2个用途:
从HBuilderX 3.9起,支持uni-app x项目。 从HBuilderX 3.9起,支持uni-app x项目。
uni-app x 开发App时,输出的是纯原生的App(Android上就是kotlin的app),里面没有js引擎和webview。详见[uni-app x](../uni-app-x/) uni-app x 开发App时,输出的是纯原生的App(Android上就是kotlin的app),里面没有js引擎和webview。详见[uni-app x](../readme.md)
也就是说,uts可以在uni-app中使用,也可以在uni-app x中使用。 也就是说,uts可以在uni-app中使用,也可以在uni-app x中使用。
...@@ -104,7 +104,7 @@ str = "hello world"; // 报错,不允许重新赋值 ...@@ -104,7 +104,7 @@ str = "hello world"; // 报错,不允许重新赋值
```ts ```ts
function test(score: number): boolean { function test(score: number): boolean {
return (score>=60) return (score>=60)
} }
test(61) // 返回true test(61) // 返回true
``` ```
......
...@@ -115,7 +115,7 @@ number本身的使用很简单,但混入了平台专有数字类型后,会 ...@@ -115,7 +115,7 @@ number本身的使用很简单,但混入了平台专有数字类型后,会
**注意:** **注意:**
- Swift 中 Int 类型是根据平台动态的,在 32 位设备下等同于 Int32, 在64位设备下等同于 Int64。因此建议整型使用 Int, 除非必要,且在保证不会溢出的场景下才使用 Int32、Int64。 - Swift 中 Int 类型是根据平台动态的,在 32 位设备下等同于 Int32, 在64位设备下等同于 Int64。因此建议整型使用 Int, 除非必要,且在保证不会溢出的场景下才使用 Int32、Int64。
- 同样,Swift 中的 UInt 类型也是根据平台动态的,在 32 位设备下等同于 UInt32, 在64位设备下等同于 UInt64。建议使用 UInt,非必要不使用 UInt32、UInt64。 - 同样,Swift 中的 UInt 类型也是根据平台动态的,在 32 位设备下等同于 UInt32, 在64位设备下等同于 UInt64。建议使用 UInt,非必要不使用 UInt32、UInt64。
- Float16 在 iOS14.0 及以上系统上才能使用,使用时注意做系统版本号判断。[参考](../plugin/uts-uni-api.md#设备) - Float16 在 iOS14.0 及以上系统上才能使用,使用时注意做系统版本号判断。[参考](../../plugin/uts-uni-api.md#设备)
- Float32 是 Float 的类型别名, 两者等价。 - Float32 是 Float 的类型别名, 两者等价。
- Float64 是 Double 的类型别名, 两者等价。 - Float64 是 Double 的类型别名, 两者等价。
...@@ -1563,7 +1563,7 @@ uvue文件中data中的json数据也涉及类型定义。此时注意:type定 ...@@ -1563,7 +1563,7 @@ uvue文件中data中的json数据也涉及类型定义。此时注意:type定
大多数情况下,data里的json数据是空的,联网从服务器取到一段json字符串,然后再赋值并转type。 大多数情况下,data里的json数据是空的,联网从服务器取到一段json字符串,然后再赋值并转type。
由于篇幅较长,示例另见:[request教程](../uni-app-x/tutorial/request.md) 由于篇幅较长,示例另见:[request教程](../tutorial/request.md)
### type 类型的遍历 ### type 类型的遍历
......
...@@ -86,4 +86,4 @@ function testArray<T extends Array<unknown>>(arg: T): T { ...@@ -86,4 +86,4 @@ function testArray<T extends Array<unknown>>(arg: T): T {
> HBuilderX 3.9.0+ 支持通过特殊方式将泛型类型作为值使用(暂未开放),方法可以根据传入来动态决定返回类型。 > HBuilderX 3.9.0+ 支持通过特殊方式将泛型类型作为值使用(暂未开放),方法可以根据传入来动态决定返回类型。
> >
> 这个未开放的泛型用法最常用的是在request api里,[详见](../uni-app-x/tutorial/request.md) > 这个未开放的泛型用法最常用的是在request api里,[详见](../tutorial/request.md)
\ No newline at end of file \ No newline at end of file
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
| -------- | ---- | ---------------------------------------------------------------------------------------------------------------------------------------- | | -------- | ---- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| 求余(%) | | 二元运算符. 返回相除之后的余数. | | 求余(%) | | 二元运算符. 返回相除之后的余数. |
| 自增(++) | | 一元运算符. 将操作数的值加一. 如果放在操作数前面 (++x), 则返回加一后的值; 如果放在操作数后面 (x++), 则返回操作数原值,然后再将操作数加一. | | 自增(++) | | 一元运算符. 将操作数的值加一. 如果放在操作数前面 (++x), 则返回加一后的值; 如果放在操作数后面 (x++), 则返回操作数原值,然后再将操作数加一. |
| 自减(--) | | 一元运算符. 将操作数的值减一. 前后缀两种用法的返回值类似自增运算符. | 自减(--) | | 一元运算符. 将操作数的值减一. 前后缀两种用法的返回值类似自增运算符.
| 加(+) | | 二元运算符. 将两个数相加. | | 加(+) | | 二元运算符. 将两个数相加. |
| 减(-) | | 二元运算符. 将两个数相减. | | 减(-) | | 二元运算符. 将两个数相减. |
| 乘(*) | | 二元运算符. 将两个数相乘. | | 乘(*) | | 二元运算符. 将两个数相乘. |
...@@ -221,8 +221,8 @@ uts 中算数运算符在大部分场景下和 ts 中的行为一致,但是在 ...@@ -221,8 +221,8 @@ uts 中算数运算符在大部分场景下和 ts 中的行为一致,但是在
| 不同的专有类型变量相加 #{rowspan=2}| let a: Int = 1; let b: Float = 3.14.toFloat(); a + b | 结果为4.14, Float |编译失败,不同类型变量不能操作 | | 不同的专有类型变量相加 #{rowspan=2}| let a: Int = 1; let b: Float = 3.14.toFloat(); a + b | 结果为4.14, Float |编译失败,不同类型变量不能操作 |
| let a: Float = 1.0.toFloat(); let b: Double = 3.14; a + b| 结果为4.14,Double |编译失败,不同类型变量不能操作 | | let a: Float = 1.0.toFloat(); let b: Double = 3.14; a + b| 结果为4.14,Double |编译失败,不同类型变量不能操作 |
**已知Bug** **已知Bug**
- Android平台 uni-app项目的uts插件中,字面量整数相除时真机运行返回类型为number,云端打包返回类型为Int。如let a = 1/10,真机运行时为值为0.1,云端打包后值为0。此问题在uni-app x项目中不存在。 - Android平台 uni-app项目的uts插件中,字面量整数相除时真机运行返回类型为number,云端打包返回类型为Int。如let a = 1/10,真机运行时为值为0.1,云端打包后值为0。此问题在uni-app x项目中不存在。
## 比较运算符的跨数字类型注意@comparisondifftype ## 比较运算符的跨数字类型注意@comparisondifftype
...@@ -375,20 +375,20 @@ a as string | null // 正常 ...@@ -375,20 +375,20 @@ a as string | null // 正常
## typeof实例类型获取@typeof ## typeof实例类型获取@typeof
使用 `typeof` 运算符获取一个实例对象的类型,返回表示类型的字符串。 使用 `typeof` 运算符获取一个实例对象的类型,返回表示类型的字符串。
| 类型 | 结果 | | 类型 | 结果 |
| ------------------------------------------------------ | ---------------- | | ------------------------------------------------------ | ---------------- |
| null | "object" | | null | "object" |
| boolean | "boolean" | | boolean | "boolean" |
| number | "number" | | number | "number" |
| string | "string" | | string | "string" |
| function | "function" | | function | "function" |
| 平台专有数字类型: Int, Float, Double, Long ... | "Int","Float","Double","Long" ... | | 平台专有数字类型: Int, Float, Double, Long ... | "Int","Float","Double","Long" ... |
| 其他任何对象(包含但不限于:Date, Array, Map, UTSJSONObject) | "object" | | 其他任何对象(包含但不限于:Date, Array, Map, UTSJSONObject) | "object" |
> 特别说明: > 特别说明:
> HBuilderX3.9.0统一为以上规范,在HBuilderX3.9.0之前版本平台专有数字类型变量使用typeof操作符获取的值为"number" > HBuilderX3.9.0统一为以上规范,在HBuilderX3.9.0之前版本平台专有数字类型变量使用typeof操作符获取的值为"number"
为了与web保持一致,typeof除了布尔、数字、字符串、函数外,全部返回object。如需判断object范围内的具体类型,需另见[instanceof](#instanceof) 为了与web保持一致,typeof除了布尔、数字、字符串、函数外,全部返回object。如需判断object范围内的具体类型,需另见[instanceof](#instanceof)
...@@ -400,7 +400,7 @@ let b: Double = 3.14 ...@@ -400,7 +400,7 @@ let b: Double = 3.14
let c: Int = 2 let c: Int = 2
typeof a == "number" //true typeof a == "number" //true
typeof b == "Double" //true typeof b == "Double" //true
typeof c == "Int" //true typeof c == "Int" //true
// string // string
...@@ -408,7 +408,7 @@ let str = "hello uts" ...@@ -408,7 +408,7 @@ let str = "hello uts"
typeof str == "string" //true typeof str == "string" //true
//boolean //boolean
let ret = true let ret = true
typeof ret == "boolean" //true typeof ret == "boolean" //true
//function //function
...@@ -434,13 +434,13 @@ typeof [1, 2, 3] == "object" //true ...@@ -434,13 +434,13 @@ typeof [1, 2, 3] == "object" //true
``` ```
**注意** **注意**
`typeof` 运算符的参数只能是实例对象,不能是类型,如下操作是错误用法: `typeof` 运算符的参数只能是实例对象,不能是类型,如下操作是错误用法:
```ts ```ts
type MyType = { type MyType = {
name:string name:string
} }
typeof MyType //报错 typeof MyType //报错
``` ```
`typeof` 运算返回值一定是字符串,不会返回 TypeScript 类型,这与TypeScript存在差异: `typeof` 运算返回值一定是字符串,不会返回 TypeScript 类型,这与TypeScript存在差异:
...@@ -452,7 +452,7 @@ let my:MyType = {name:"abc"} ...@@ -452,7 +452,7 @@ let my:MyType = {name:"abc"}
type NewType = typeof my; //报错 type NewType = typeof my; //报错
``` ```
**特殊情况** **特殊情况**
在Android平台,将 number 类型赋值给 any 类型变量时,会根据数值将类型转变为实际平台专有数字类型,使用 typeof 获取此 any 类型变量将会返回实际平台专有数字类型。 在Android平台,将 number 类型赋值给 any 类型变量时,会根据数值将类型转变为实际平台专有数字类型,使用 typeof 获取此 any 类型变量将会返回实际平台专有数字类型。
```ts ```ts
...@@ -462,13 +462,13 @@ let c: any = a ...@@ -462,13 +462,13 @@ let c: any = a
let d: any = b let d: any = b
typeof a == "number" //true typeof a == "number" //true
typeof b == "Double" //true typeof b == "Double" //true
typeof d == "Double" //true typeof d == "Double" //true
// 在 iOS 平台上 // 在 iOS 平台上
typeof c == "number" //true typeof c == "number" //true
// 在Android平台上变量c会根据数据实际数值转换为平台专有数字类型Double // 在Android平台上变量c会根据数据实际数值转换为平台专有数字类型Double
typeof c == "number" //false 真实返回的是 "Double" typeof c == "number" //false 真实返回的是 "Double"
``` ```
...@@ -484,15 +484,15 @@ typeof Double //在Android平台Double有伴生对象可以正常运行,实 ...@@ -484,15 +484,15 @@ typeof Double //在Android平台Double有伴生对象可以正常运行,实
使用 `instanceof` 运算符执行运行时检查,以标识对象是否符合给定类型。 使用 `instanceof` 运算符执行运行时检查,以标识对象是否符合给定类型。
| 类型 | 结果 | | 类型 | 结果 |
| ------------------------------------------------------------------------------------ | ---------------- | | ------------------------------------------------------------------------------------ | ---------------- |
| Boolean | 编译报错,不支持 | | Boolean | 编译报错,不支持 |
| Number | 编译报错,不支持 | | Number | 编译报错,不支持 |
| String | 编译报错,不支持 | | String | 编译报错,不支持 |
| 平台专有数字类型: Int, Float, Double, Long ... | true or false | | 平台专有数字类型: Int, Float, Double, Long ... | true or false |
| typeof 结果为 "object" 的类型(包含但不限于:Date, Array, Map, UTSJSONObject, 自定义类型) | true or false | | typeof 结果为 "object" 的类型(包含但不限于:Date, Array, Map, UTSJSONObject, 自定义类型) | true or false |
> 特别说明: > 特别说明:
> HBuilderX3.9.0 使用 `instaceof` 对 Boolean, Number, String 类型的实例进行判断会编译报错,请使用 `typeof` 。在HBuilderX3.9.0之前版本可正常使用 `instaceof` 对上述类型的判断。 > HBuilderX3.9.0 使用 `instaceof` 对 Boolean, Number, String 类型的实例进行判断会编译报错,请使用 `typeof` 。在HBuilderX3.9.0之前版本可正常使用 `instaceof` 对上述类型的判断。
...@@ -532,7 +532,7 @@ let a: Double = 3.14 ...@@ -532,7 +532,7 @@ let a: Double = 3.14
let b: Int = 2 let b: Int = 2
a instanceof Double //true a instanceof Double //true
b instanceof Int //true b instanceof Int //true
``` ```
...@@ -540,7 +540,7 @@ b instanceof Int //true ...@@ -540,7 +540,7 @@ b instanceof Int //true
> 3.93+ (Android) > 3.93+ (Android)
await 操作符用于等待一个 [Promise](./buildin-object-api/promise.md) 兑现并获取它兑现之后的值。它只能在[异步函数](./function.md#async)中使用。 await 操作符用于等待一个 [Promise](./buildin-object-api/promise.md) 兑现并获取它兑现之后的值。它只能在[异步函数](./function.md#async)中使用。
在 HBuilderX 3.93 以下的版本或者 iOS 平台,await 不能与 [Promise](./buildin-object-api/promise.md) 一同使用,此时请分别参考:[安卓 异步函数](../plugin/uts-for-android.md#_6-11-synchronized-lock-等线程同步概念-在uts里怎么写)[iOS 异步函数](../plugin/uts-for-ios.md#_5-1-13-异步方法) 在 HBuilderX 3.93 以下的版本或者 iOS 平台,await 不能与 [Promise](./buildin-object-api/promise.md) 一同使用,此时请分别参考:[安卓 异步函数](../../plugin/uts-for-android.md#_6-11-synchronized-lock-等线程同步概念-在uts里怎么写)[iOS 异步函数](../../plugin/uts-for-ios.md#_5-1-13-异步方法)
```ts ```ts
async function test(): Promise<string> { async function test(): Promise<string> {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册