Typescript中的as、感叹号、问号

阅读数:89 评论数:0

跳转到新版页面

分类

html/css/js

正文

一、as关键字

在ts中,表示断言有两种方式:

1、扩号表示法:

let someValue: any = "this is a string";
let strLength: number = (someValue).length;

2、as关键字

let someValue: any = "this is a string";
let strLength: number = (someValue as string).length;

二、叹号

!的作用此时与as是等价的。然而,!只是用来判断null和undefined;

as和!用于属性的读取,都可以缩小类型检查范围,都做判空用途时是等价的。只是!具体用于告知编译器此值不可能为空值(null和undefined),而as不限于此。

三、问号

?可用于属性的定义和读取,读取时告诉编译器此值可能为空值(null和undefined),需要做判断。

var b = node[i]!.data?.class

问号还表示可选的属性

interface SquareConfig {
    color?: string;
    width?: number;
}
function createSquare(config: SquareConfig) {
    if (config.color) {
        console.log(config);
    }
}

可选属性的含义是:使用这个属性时,要么这个属性名不存在,要么必须符合属性的类型定义




相关推荐

一、script标签属性 async 表示立即下载该脚本,但不妨碍页面中的其他操作,只对外部文件有效。 charset 与src属性一起使用,告诉浏览器用来编码这个javascript程序的

ECMAscript 5添加了第二种运行模式:严格模式(strict mode)。 //针对单个脚本 <script>   "use strict";   console.log("这是严格模式

Javascript中, !表示运算符"非", 如果变量不是布尔类型, 会将变量自动转化为布尔类型

react原生动态添加多个className会报错: import style from './style.css'

css预处理器是一种语言用来为css增加一些编程的特性,无需考虑浏览器的兼容性问题,最为普遍的三款

一、概述 TypeScript是微软开发的javascript加强版,就有带了type的javascript,主要用于解决:弱类型和没有命名空间,导致很难模块化。 TS允许你以接口的形式定义复杂的类型

F12之后,F1:浏览器设置里面,禁用HTTP缓存。再重新打开网页就可以加载到了&nbsp;

style的用法 &lt;div style={{display: this.state.btnFlag ? "bl

引入方式改为 import * as echarts from 'echarts'; // 或 const echa

一、简介 html2canvas能够实现在用户浏览器端直接对整个或部分页面进行截屏,它不需要来自服务器任何渲染,整张图片都是在客户端浏览器创建。 html2canvas脚本将页面渲染成一个canvas