5

概述

javascript是一种弱类型语言,弱类型很随意,很灵活,这是它的优点,同时也是它的缺点;同一个变量,既可以是数值型,也可以是字符串型,还可以是其他各种对象类型,在js中,给你一个变量名,你能一眼就确定它的类型吗,恐怕大多数情况下,你不能确定吧,即使最开始是一个数字赋值给了它,你咋知道中间的代码不会把它变成其他类型呢。

强类型和弱类型

首先让我们简单区分一下什么是强类型和弱类型语言吧,当然js是名副其实的弱类型语言

强类型

给定一个变量, 首先得声明它的类型 int a; 当然可以同时给它赋初值,int a = 1;。后续我们如果给它赋值,只能赋值为整型的,a = 2;,如果你想给它赋值为字符串型,如a = "xxx"; 编译器直接就给你报错了,所以也谈不上后续的过程了。

弱类型

弱类型语言就没有这些限制

下面步入正题

typescript

typescriptjavascript的超集,完全兼容javascript,但又扩展了许多功能,相信在了解之后你会爱上它的,为什么这么说呢,因为给定你一个对象,你可以借助于编辑器的只能提示,一窥它里面有哪些属性,那些方法等,不用到处找定义。typescript的官网在此

声明变量类型的形式为 var a: TypeType为类型,一旦声明了Type类型,后续a只能接收Type类型,不能接收其他类型,因为编辑器会给你智能提醒的,当然编译的时候,也会给你错误的。

基本类型

基本类型有 number,string,boolean,undefined,null

var v1: number = 1
var v2: string = 'hello'
var v3: boolean = true
var v4: undefined = undefined
var v5: null = null

数组类型

// 字串数组
var arr_s: string[] = ['xxx', 'yyy']
// 数字数组
var arr_n: number[] = [1, 2]

枚举

enum Gendar {
    male,
    female
}
var g: Gendar = Gendar.male

万能类型

any也就是相当于没有声明任何类型了

var a: any = 123

yuanxiaowa
10.1k 声望23.7k 粉丝

循规蹈矩太无聊了,要的就是颠覆