typeScript初使用
第一次使用时安装(记得要先安装node)
npm install -g typescript
typescript中的数据类型
typescript中为了使编写的代码更加规范, 更有利于维护,增加了类型效验
- 布尔类型(boolean)
// es5写法
var flag = true;
flag = 456;
// ts写法
var flag: boolean = true;
// 注意: 此时如果flag = 456 是会在编译时报错的
flag = false
// 值得一提的就是如果你是像下面这样写, 那你创造的不是布尔类类型, 而是一个Boolean对象。
var flag: boolean = new Boolean();
// 因为 boolean 是JavaScript中的基本类型, 而 Boolean 则是JavaScript中的构造函数。
- 数组类型(number)
// ts写法
var num: number = 123;
num = 456
- 字符串类型(string)
// ts写法
var str: string = 'hello world';
str = '小明'
// ts中当然也是可以使用Es6中的模板字符串的
sentence = `hello ${str}`
- 数组类型(array)
// ts写法
// ts中有两种定义数组的方法
// 第一种定义数组方式
var arr:number[] = [1,2,3,4,5]
// 第二种定义数组方式
// 规定数组中的数据类型
var arr:Array<number>=[1,2,3,4,5]
- 元祖类型(tuple)
// ts写法
// 元祖类型也属于数组的一种, 比如如下
var arr:Array<string, number>=['hello world', 9527]
// 其实就是给数组中每一个位置指定一个类型, 上面中如果你讲9527改成 '9527'是会报错的
- 枚举类型(enum)
// 枚举类型用于取值被限定在一定范围内的场景, 事先考虑到某一变量可能取的值, 尽量用自然语言中含义清楚的单词来表示它的每一个值。好比说 一周之内有七天,彩虹颜色限定红绿蓝等
// 枚举成员会被赋值为从 0 开始递增的数字,同时也会对枚举值到枚举名进行反向映射。
// 举个栗子如下面最后返回的是 success=0, erro=1
enum Status {success, error}
// 当然枚举项也是可以手动赋值 也可以赋值为 负数 小数 如果赋值为这些枚举数也一样是递增的列如
// 举个栗子如下面最后返回的是 success=1.5,erro=2.5
enum Status {success=1.5, error}
// 枚举项也是可以赋值为string类型。但是如果赋值了string那么它是无法自增导致报错。所以要么继续设置string,要么设置为number那之后的一样会自增
// 举个栗子如下面最后返回的是 success=成功, error=失败 ping=1 newData=2
enum Status {success="成功", error="失败", ping=1, newData}
// 输出
let s:Status = Status.success;
console.log(s) // '成功'
- 任意类型(any)
// 在任意值上访问任何属性都是允许的
let anyThing: any = 'hello';
console.log(anyThing.myName);
// 也允许调用任何方法
let anyThing: any = 'Tom';
anyThing.setName('Jerry');
// 可以认为,声明一个变量为任意值之后,对它的任何操作,返回的内容的类型都是任意值。
- null 和 undefined
// ts写法
// 首先undefined错误写法
let num:number;
console.log(num) // undefined虽然会答应但是是错误的写法
// 正确写法
let num:undefined;
console.log(num) // undefined 正确写法
// 之后则是null类型, 当设置为空时。参数也只能是为空
let num:null;
num = 123; // 那么这属于错误
//值得一提的是,如果要传的不是一个必填项时其实可以写:
let num: number | null | undefined;
- void类型
// ts中vodi表示没有任何返回类型,一般用于定义方法的时候方法没有返回值
// 举个栗子
function run():void {
console.log('123')
}
- never类型
// never类型是其他类型(包裹null 和 undefined)的子类型, 表示从不会出现的值
// 声明nerver的变量, 只能被never类型所赋值;
var a:undefined;
var b: null;
// 这样是不会报错的
// 举个栗子
a =(()=>{
throw new Error("错误");
})
需要知道的是如果在声明的时候没有定义类型, 那么他将会被定义为任意类型
let some;
some = 9527;
some = 'hello 3Q';
// 上面的操作其实等于
let some: any;
some = 9527;
some = 'hello 3Q';
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。