提交 0c669db3 编写于 作者: Q qiang

docs: uts as

上级 6821658b
...@@ -321,17 +321,22 @@ a as number // 错误 ...@@ -321,17 +321,22 @@ a as number // 错误
USTJSONObject和type不相容,无法互相as。应该在初始的字面量或JSON.parse环节就决定好类型。 USTJSONObject和type不相容,无法互相as。应该在初始的字面量或JSON.parse环节就决定好类型。
类型断言会在运行时进行,如果无法强制转换,类型断言运算符as会引发异常: 类型断言会在运行时进行,如果无法强制转换,类型断言运算符会引发异常:
```ts ```ts
const a: string | null = 'a' const a: string | null = 'a'
a as string // 正常 a as string // 正常
a = null a = null
a as string null // 正常
a as string // 异常 a as string // 异常
``` ```
以上代码中当值为 `null` 的时,强制转换为 `string` 会引发异常。为了让这样的代码用于可空值,请在类型断言的右侧使用可空类型:
```ts
a as string null // 正常
```
当 as 操作符的左侧为[对象字面量](./literal.md#object-literal)时,编译器会进行[特殊处理](./object.md#实例化):自动创建类型对应的实例。 当 as 操作符的左侧为[对象字面量](./literal.md#object-literal)时,编译器会进行[特殊处理](./object.md#实例化):自动创建类型对应的实例。
```ts ```ts
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册