版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/greatbody/article/details/54429477
导语
我们知道JavaScript是一个弱类型语言,基本上可以说是鼓励我们随意的使用各种类型,大手大脚的使用变量。
然而,这样带来的问题也同样棘手,比如代码的问题无法通过编辑器来进行推倒,大型的工程可能会引入众多的bug,而无从下手。
TypeScript与其优势
TypeScript是由设计开发了C#,Delphi语言的大师设计开发的,综合了C#和Delphi的优秀点。TypeScript是JavaScript(ECMAScript)语言的超集,也就是说,JavaScript代码,可以直接粘贴到TypeScript中应用。
唯一需要注意的就是,从编辑器的效果上来讲,编辑器会检查语法中的类型问题,给出红色波浪线警示,但是编译不会报错。
TypeScript的编译
TypeScript是JavaScript的超集,它的编译结果,就是JavaScript,我们可以指定编译成ES5标准还是ES6标准或是其它标准。它的编译,就是退化。
语法特性集锦
终于开始正题了,这里将载明开发中遇到的问题,和由此发现的语法特性。
强制类型转换与接口
在编写某程序的时候,遇到一个函数的返回值是一个对象,对象的结构如下:
{
"src": "https://www.baidu.com",
"class": "link-pic"
}
我们的代码是这样的:
var item = getItem();
console.log(item.src);
然后,在VSCode中,会提示[ts] Property 'src' does not exist on type 'Object'.
就是因为在TypeScript中Object并没有这些属性,那么根据TypeScript的语法,这就是错误的。那么怎样转换呢?
我们用强制类型转换。
转换成什么呢?
我们转换成接口吧,接口的特性就是标明类型,但是不含具体数据。
说干就干,试试。
interface Attribute {
class: string;
src: string;
}
var item = <Attribute>getItem();
console.log(item.src);
果然,再没有提示异常了。
总结
谢谢,待续。还没有写完呢!