let num1 : number = 20;
let num2 : number = 175.5;
let a3 : number = NaN;
let nu : null = null;
let boo : boolean = true;

let arr1: number[] = [1,2];
let arr2: Array<string> = ['a','b'];
let arr3: Array<string | number> = ['1',2];

let tup: [string, number] = ['2',2];

//枚举类型(enum)
enum REN {
  // nan = 1 -----> 初始化下标
  f,s,t
}
console.log(REN.f)
console.log(REN.s)
console.log(REN.t)
console.log(REN[2])

//void 表示没有返回值,一般用来定义方法没有返回值
function f1() : void {
  console.log('void 类型')
}

//any 类型
let an: any = "any 类型";
console.log(an);//any 类型

//never 用于描述总抛出错误的函数
function f2(msg: string): never {
  throw new Error(msg);
}

//日期类型
let da: Date = new Date();
console.log(da);

//正则表达式类型
let reg1 : RegExp = /\{\{(.*?)\}\}/g;
console.log(reg1);

 

var uname:string = "Runoob";
var score1:number = 50;
var score2:number = 42.50
var sum = score1 + score2
console.log("名字: "+uname)
console.log("第一个科目成绩: "+score1)
console.log("第二个科目成绩: "+score2)
console.log("总成绩: "+sum)

注意:变量不要使用 name 否则会与 DOM 中的全局 window 对象下的 name 属性出现了重名。

使用 tsc 命令编译以上代码,得到如下 JavaScript 代码:

var uname = "Runoob";
var score1 = 50;
var score2 = 42.50;
var sum = score1 + score2;
console.log("名字: " + uname);
console.log("第一个科目成绩: " + score1);
console.log("第二个科目成绩: " + score2);
console.log("总成绩: " + sum);

执行该 JavaScript 代码输出结果为:

名字: Runoob
第一个科目成绩: 50
第二个科目成绩: 42.5
总成绩: 92.5

TypeScript 遵循强类型,如果将不同的类型赋值给变量会编译错误,如下实例:

var num:number = "hello"     // 这个代码会编译错误

类型推断

当类型没有给出时,TypeScript 编译器利用类型推断来推断类型。

如果由于缺乏声明而不能推断出类型,那么它的类型被视作默认的动态 any 类型。

var num = 2;    // 类型推断为 number
console.log("num 变量的值为 "+num); 
num = "12";    // 编译错误
console.log(num);

 

posted on 2021-02-04 17:56  京鸿一瞥  阅读(171)  评论(0)    收藏  举报