[英]Please explain type assertion
// Type Assertion
let value: any = "Asim Hussain";
let len: number = (<string>value).length;
I don't really understand this.我真的不明白这一点。 Please explain!
请解释!
let value: any = "Asim Hussain";
This lets the variable value
to be in any kind of type.这让变量
value
可以是任何类型的。 It can be an integer, string, array, object.. Well, any thing!它可以是整数、字符串、数组、对象……好吧,任何东西!
let value: any = "Asim Hussain"; // OK
value = 0; // OK
value = []; // OK
let len: number = (<string>value).length;
This forces the variable len
to be in the number type, which only allows number s such as 0, 0.233, etc.这会强制变量
len
为数字类型,它只允许数字s,例如 0、0.233 等。
let value: any = "Asim Hussain;"
let len: number = (<string>value).length;
len = "213"; // Error
len = 213; // OK
len = value; // Error
len = value.length; // OK
The .length
function returns a number, which is what the varable desires. .length
函数返回一个数字,这是变量想要的。
let value: any = "Asim Hussain";
The variable value
can contain anything (type any
)变量
value
可以包含任何内容(输入any
)
let len: number = (<string>value).length;
The variable len
can only contain number (type number
)变量
len
只能包含数字(类型number
)
The value
(type any
) is cast into a type string
. value
(类型any
)被转换为类型string
。
(<string>value)
== value.toString()
(<string>value)
== value.toString()
Tha variable len
is set to the length
of this string
.变量
len
被设置为这个string
的length
。
You're telling typescript that you know more than typescript.你告诉打字稿你知道的不仅仅是打字稿。
Example 1:示例 1:
let value: any = "Asim Hussain"
const t = value.map(s => s)
Result: Typescript won't give me any errors.结果:Typescript 不会给我任何错误。
Example 2示例 2
let value: any = "Asim Hussain"
const t = (<string>value).map(s => s)
Result: Typescript lets me know 'Property map does not exist on string'结果:打字稿让我知道“字符串上不存在属性映射”
Example 3示例 3
let value: any = "Asim Hussain"
const len = value.length
Result: The type of len would be any
aswell.结果: len 的类型也可以是
any
。
Example 3 I tell Typescript that I'm using length of a string示例 3我告诉 Typescript 我正在使用字符串的长度
let value: any = "Asim Hussain"
const len = (<string>value).length
Results: Typescript knows that len is a number since String.prototype.length returns a number.结果:Typescript 知道 len 是一个数字,因为 String.prototype.length 返回一个数字。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.