美文网首页
ts数据类型#2

ts数据类型#2

作者: IamaStupid | 来源:发表于2019-12-19 14:40 被阅读0次
1. any类型

不希望类型检查器对这些值进行检查而是直接让它们通过编译阶段,可以使用 any类型来标记这些变量。

let notSure: any = 4;
notSure = "maybe a string instead";
notSure = false; // okay, definitely a boolean
let list: any[] = [1, true, "free"];
list[1] = 100;
2. object

object表示非原始类型,也就是除number,string,boolean,symbol,null或undefined之外的类型。
Object类型的变量只是允许你给它赋任意值 - 但是却不能够在它上面调用任意的方法,即便它真的有这些方法。(下面的代码都已经打印出来了‘b.join():5-abc’,但是依然报了错)

any也允许你给它赋任意值 - 而且能够在它上面调用任意的方法。

let a:any = [5, 'abc'];
console.log('a.toFixed():', a.join('-'))

let b:object = a;
console.log('b.toFixed():', b.join('-')) // Property 'join' does not exist on type 'object'.

// b = 4; // error:不能将4赋给object类型

a.push('88')
console.log('b a:', b, a)   // b a: [5, "abc", "88"] [5, "abc", "88"]

b = [4]
console.log('b a:', b, a)   // b a: [4] [5, "abc", "88"]
3. 枚举enum

枚举有点像数组,它有个元素编号,从0开始,用法又有点像js对象。

enum Color {Red, Green, Blue}
console.log(Color) // {0: "Red", 1: "Green", 2: "Blue", Red: 0, Green: 1, Blue: 2}

看到打印的值,就明白了,它既可以通过编号获取定义的值,也可以通过定义的值,获取编号。

enum Color {Red = 1, Green}
enum Color {Red2 = 5, Green2}
console.log(Color) 
// {1: "Red", 2: "Green", 5: "Red2", 6: "Green2", Red: 1, Green: 2, Red2: 5, Green2: 6}

可以重复声明,而且编号可以手动修改。

enum Color {Red = 1, Green = 6}
enum Color {Red2 = 5, Green2}
console.log(Color) 
// {1: "Red", 5: "Red2", 6: "Green2", Red: 1, Green: 6, Red2: 5, Green2: 6}

手动声明,有可能导致意料之外的错误,Green被覆盖了。
Green的下标是6,Green2的下标也是6,后执行的把先执行的覆盖了。

4. 函数的返回类型:void never
5. 类型断言

类型断言并不能强制转换,也不会进行特殊的数据检查和解构。 它没有运行时的影响,只是在编译阶段起作用。 TypeScript会假设你(程序员),已经进行了必须的检查。
语法,其一是“尖括号”语法:

let someValue: any = 123;
let strLength: number = (<string>someValue).length;
console.log(strLength) // undefined  
(不能强制转换,number变量并没有length属性)


另一个为as语法:(在.jsx文件里,只能用这种)

let someValue: any = "123";
let strLength: number = (someValue as string).length;
console.log(strLength) // 3

相关文章

  • TypeScript02--基础数据类型与接口

    基础数据类型: 1.ts的基础数据类型: ts相比js新增的数据类型:元组,any,void,neve...

  • Typescript - 基础(二)

    TS 的基本类型和枚举类型 1、TS 的数据类型和 ES6 的数据类型 共有数据类型: Boolean Numbe...

  • ts数据类型#2

    1. any类型 不希望类型检查器对这些值进行检查而是直接让它们通过编译阶段,可以使用 any类型来标记这些变量。...

  • TypeScript基本数据类型

    在TS中可以写成以上形式,但不标准。TS内明确控制数据类型。正确写法如下:

  • typescript学习笔记(一)

    1.ts介绍微软开发的开源编程语言,是js的超集。2.安装 3.运行 4.ts中的数据类型 布尔类型,数字类型,字...

  • 数据类型

    typescript 命令 ​ tsc --init 生成配置文件 ts的基础数据类型 特殊数据类型 数组 ...

  • TypeScript基础知识

    命令 查看版本:tsc -v 运行ts文件:tsc xx.ts 数据类型 接口Interface 类和接口 泛型基...

  • typescript 基本类型

    作为JavaScript的超集,ts支持与js几乎相同的数据类型。1、Boolean类型 2、数字类型 3、字符串...

  • TypeScript学习2、TS数据类型

    1、布尔类型。 2、数值类型(包括浮点型, 二进制 八进制 十六进制数值))。 3、字符串类型。 4、数组类型。写...

  • 2、TS 变量与数据类型

    1、js与ts区别一: js不需要声明变量类型,如果一开始变量的值是字符串,后面变改成了数值,也没有关系 但是ts...

网友评论

      本文标题:ts数据类型#2

      本文链接:https://www.haomeiwen.com/subject/cnjmnctx.html