强类型和弱类型概念:
强类型指的是每个变量和对象都必须具有声明类型,他们是在编译的时候就确定类型的数据,在执行时类型不能更改;
而弱类型在执行的时候才会确定类型,
typescript是javascript的一个超集,设计理念是在兼容es6语法的基础上,提供类型检查。javascript是弱编程语言,es5不具备面向对象编程的能力,es6具备了类和模块的概念,而typescript扩展了面向对象编程能力,是一门弱编程语言像强编程语言一样使用。
javascript是基于对象和事件驱动的,无需特定的语言环境,只需在特定的支持的浏览器上就可以运行。
javascript是一门轻量级的解释性脚本语言,可以嵌入到HTML页面,就能由浏览器逐行加载解释执行。
JavaScript 的语法简单,使用的变量为弱类型。
JavaScript 语言较为安全,仅在浏览器端执行,不会访问本地硬盘数据。
JavaScript 语言具有动态性。JavaScript 是事件驱动的,只根据用户的操作做出相应的反应处理。
JavaScript 只依赖于浏览器,与操作系统的因素无关。因此 JavaScript 是一种跨平台的语言。
JavaScript 兼容性较好,能够与其他技术(如 XML,REST API 等)一起使用。
TypeScript 具有以下特点:
TypeScript 是 Microsoft 推出的开源语言,使用 Apache 授权协议
TypeScript 增加了静态类型、类、模块、接口和类型注解
TypeScript 可用于开发大型的应用
TypeScript 易学易于理解
typescript提供的核心概念:
TypeScript 通过类型注解提供编译时的静态类型检查。
TypeScript 中的数据要求带有明确的类型,JavaScript不要求。
TypeScript 为函数提供了缺省参数值。
TypeScript 引入了 JavaScript 中没有的“类”概念。
TypeScript 中引入了模块的概念,可以把声明、数据、函数和类封装在模块中。
具体:
- 类型注解
- 接口
- 类
- 函数
- 泛型
- 枚举
————————————————————————————————————————————————
类型注解:
let str: string;//ts代码
let str;//编译生成的js代码
————————————————————————————————————————————————
接口:
interface Point{
x: number;
y: number;
}
————————————————————————————————————————————————
类:
class Greeter {
greeting: string;
constructor(message: string) {
this.greeting = message;
}
greet() {
return "Hello, " + this.greeting;
}
}
————————————————————————————————————————————————
函数:
function add(x: string, y: string, z?:string): string{
return x + y;
}
————————————————————————————————————————————————
泛型:
class Greeter<T> {
greeting: T;
constructor(message: T) {
this.greeting = message;
}
greet() {
return this.greeting;
}
}
let greeter = new Greeter<string>("Hello, world");
————————————————————————————————————————————————
枚举:
enum Direction {
Up,
Down,
Left,
Right,
}
————————————————————————————————————————————————