Javascript 请解释类型断言 //类型断言 let value:any=“Asim Hussain”; 设len:number=(value).length;

Javascript 请解释类型断言 //类型断言 let value:any=“Asim Hussain”; 设len:number=(value).length;,javascript,typescript,Javascript,Typescript,我真的不明白。请解释 让值:any=“Asim Hussain” 这使得变量值可以是任何类型。它可以是整数、字符串、数组、对象。。嗯,任何东西 // Type Assertion let value: any = "Asim Hussain"; let len: number = (<string>value).length; 让len:number=(value).length 这将强制变量len为数字类型,该变量仅允许numbers,如0、0.233等 l

我真的不明白。请解释

让值:any=“Asim Hussain”

这使得变量
可以是任何类型。它可以是整数、字符串、数组、对象。。嗯,任何东西

// Type Assertion
let value: any = "Asim Hussain";
let len: number = (<string>value).length;

让len:number=(value).length

这将强制变量
len
为数字类型,该变量仅允许numbers,如0、0.233等

let value: any = "Asim Hussain"; // OK

value = 0; // OK
value = []; // OK
let value:any=“Asim Hussain;”
设len:number=(value).length;
len=“213”//错误
len=213;//好啊
len=值;//错误
len=value.length;//好啊
.length
函数返回一个数字,这是变量所需要的。

let value:any=“Asim Hussain”
变量
可以包含任何内容(键入
any

让len:number=(value).length
变量
len
只能包含数字(类型
number

(type
any
)被强制转换为type
字符串

(value)
==
value.toString()


变量
len
设置为该
字符串的
长度

您告诉typescript您知道的比typescript多

示例1:

let value: any = "Asim Hussain;" 
let len: number = (<string>value).length;

len = "213"; // Error
len = 213; // OK
len = value; // Error
len = value.length; // OK
结果:Typescript不会给我任何错误

示例2

let value: any = "Asim Hussain"
const t = value.map(s => s)
结果:len的类型也是
any

示例3 我告诉Typescript我正在使用字符串的长度

let value: any = "Asim Hussain"
const len = value.length
let value:any=“Asim Hussain”
常量len=(值).length

结果:Typescript知道len是一个数字,因为String.prototype.length返回一个数字。

我也不明白。如果
value
将用作字符串,为什么不直接声明
let-value:string=“…”?由于该值已分配给字符串,因此也不必使用
:string
,对吗?它应该与
let value=“…”
let value: any = "Asim Hussain"
const len = value.length
let value: any = "Asim Hussain"
const len = (<string>value).length