专业移动微网站设计,地方网站建站平台,做网站与运营一般多少钱,设计素材网站情人节类型断言是干啥的 类型断言 #xff1a; 是手动的给某个变量 指定类型#xff0c;从而可以方便操作该类型的属性和方法。 类型断言的两种写法 方式一 #xff1a; 变量名 as 类型 let x: number | string abc;
console.log((x as string).length); // 输出 3 #xff0c;因…类型断言是干啥的 类型断言 是手动的给某个变量 指定类型从而可以方便操作该类型的属性和方法。 类型断言的两种写法 方式一 变量名 as 类型 let x: number | string abc;
console.log((x as string).length); // 输出 3 因为是个字符串方式二 类型 变量名 let x: number | string abc;
console.log((stringx).length); // 输出 3 因为是个字符串类型断言的理解误区 注意 1、类型断言只是为了方便明确变量的类型而不是将变量的类型进行改变 2、因此类型断言在使用的时候建议 在我们已经明确知道变量是什么类型的时候使用 这样才能够真正发挥类型断言的作用。 例如 let x:number 123;
// 这样写ts 并不会报错
//但是 实际上并不会将 x 真正的转为string 类型最终的输出结果是 undefined
console.log((stringx).length)举个例子理解一下
// 定义一个函数
function m1(x : string | number){console.log((x as string).length)
}// 分别用不同类型的数据参数调用一下函数
m1(1234567890); // undefined
m1(1234567890); // 10结果分析 1、函数的作用是 输出字符串参数的长度 2、第一次调用的参数是数值类型没有 length 属性因此输出 undefined 3、第二次调用的参数是字符串类型正常输出字符串的长度10 小结 类型断言并不是类型转换 类型断言并不是类型转换 类型断言并不是类型转换 特殊的any 为什么要特别提一下 any 这个类型呢。 因为 any 类型会覆盖 ts 的类型检查没有类型之后就可以任意操作了自由自在。 所以在进行类型断言的时候要慎重使用。 任意类型断言为any 放飞自我的任意类型any,变量可以随意赋值又回到了最初js中的状态无拘无束。 let y : string | number;
// 断言为 any 类型之后随便写不会提示错误而且运行正常
(anyy) {a:aaa,b:bbb
}
console.log(y); // { a: aaa, b: bbb }any 断言为其他具体类型 被强加的束缚不再自由卑微的活着。 嗯其实也不算卑微因为此时我们必然是知道具体的类型了反正就是这样。 // 将any 断言为一个具体的类型
let z : any 123;
console.log((stringz).length); // 3