我是TypeScript的新手.我开始写一本名为Typescript Revealed(Pub Feb.2013)的书.在第2章中有一个名为"Casts"的部分,其中包含以下示例:
var a : int =
我试着应用这个例子,如下:
var SomeNumberAsAString = "1000"; var a: int =SomeNumberAsAString;
但编译器给了我一个错误:
hello.ts(2,8):错误TS2304:找不到名称'int'.
hello.ts(2,15):错误TS2304:找不到名称'int'.
我想知道如何进行此演员表,或者是否更改了Typescript的规范?
(Pub 2月2013)
那本书很旧.它number
现在叫.
var SomeNumberAsAString = "1000"; var a: number =SomeNumberAsAString;
此断言也非常不安全,我不会在生产代码中这样做.但它得到了重点:)
更多有关断言的最新书籍章节:https://basarat.gitbooks.io/typescript/content/docs/types/type-assertion.html
我已经阅读了@ basarat的答案,并决定发布我自己的答案,因为我坚信还有一些解释空间.
请注意,
施法不会产生数字.实际上它将允许您的代码被编译(因此您将通过所有静态类型检查)但它不会是javascript中的数字.考虑这段代码:
let str = "1000"; let a: number =str; let b: number = parseInt(str); //or just let b = parseInt(str) console.log(typeof a); // string console.log(typeof b); // number
我几乎无法想象 - a
与b
-case 相比,-case 是有益的.我只使用parseInt或parseFloat或Number,无论多适合什么.
铸造看起来很聪明,但你必须100%确定你应该通过这个成语实现什么.
在大多数情况下,你可能不希望实现这一点)