美文网首页
typescript 中的数据类型

typescript 中的数据类型

作者: 孤星伴明月 | 来源:发表于2018-11-19 23:32 被阅读0次

在ts中,必须设置变量的数据格式。

类型推断

你在初始化变量时并没有明确地指定变量类型的话,则ts会自动根据变量的初值给这个变量设置一个类型。而在随后的使用中,这个变量也就有类型了。

如下,是一个错误的示范:

let a = "abc"
a = 1

a的类型被推断出是字符串型,则不可以当做数值使用。

基本数据类型

boolean,number,string,数组

let isDone : boolean = false;
let num:number = 10;
let str:string = "good";
let list:number[] = [1,2,3];
let arr:Array<number> = [1,2,3];

自定义的组合类型的数组

let objArr:[string,number,boolean] = ['a',10,false]

自使用 type 定义数据类型名

type Name = string;
type NameResolver = (b:number) => string;
type NameOrResolver = Name | NameResolver;

let a: Name = "abc"
a = 1 // 错误 

// 两个错误:参数的类型不对,返回值类型也不对
let b: NameOrResolver = (b:string ) => {
    return 1
}

枚举类型

enum TYPE { STUDENT, TEACHER };
let t: TYPE = TYPE.STUDENT
console.info(t) // 1

如上的ts代码编译成js后是:

var TYPE;
(function (TYPE) {
   TYPE[TYPE["STUDENT"] = 0] = "STUDENT";
   TYPE[TYPE["TEACHER"] = 1] = "TEACHER";
})(TYPE || (TYPE = {}));
;
var t = TYPE.STUDENT;
console.info(t); // 1

自定义数据类型

你可以用接口来自己定义某个特殊的数据结构:

interface STUDENT{
    name: string,
    age: number,
    score:[number,number,number]
}

function f(stu:STUDENT) {
    console.info(stu.age,stu.name,stu.score.join("-"))
}
let s:STUDENT = {name:100}; // error:100不是字符串
f({age:20,name:"jake",score:[100,'90',98]}) // error: '90' 不是数值

对应生成的js是:

function f(stu) {
    console.info(stu.age, stu.name, stu.score.join("-"));
}
f({ age: 20, name: "jake", score: [100, 90, 98] });

相关文章

网友评论

      本文标题:typescript 中的数据类型

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