1.声明变量: TypeScript 遵循强类型,如果将不同的类型赋值给变量会编译错误
var [变量名] : [类型] = 值;
var uname:string = "Runoob";
// 声明变量的类型,但没有初始值,变量值会设置为 undefined:
// 声明变量并初始值,但不设置类型,该变量可以是任意类型:
// 声明变量没有设置类型和初始值,类型可以是任意类型,默认初始值为 undefined:
注意: 变量不要使用 name 否则会与 DOM 中的全局 window 对象下的 name 属性出现了重名。!!!!
2.类型断言: 允许变量从一种类型更改为另一种类型
var str = '1'
var str2:number = <number> <any> str //str、str2 是 string 类型
console.log(str2)
js中编译如下代码:
var str = '1';
var str2 = str; //str、str2 是 string 类型
console.log(str2); // 1
// 当类型没有给出时,TypeScript 编译器利用类型推断来推断类型。
// 如果由于缺乏声明而不能推断出类型,那么它的类型被视作默认的动态 any 类型。
3.变量作用域
// 和其他语言很相似
var global_num = 12 // 全局变量
class Numbers {
num_val = 13; // 实例变量
static sval = 10; // 静态变量
storeNum():void {
var local_num = 14; // 局部变量
}
}
console.log("全局变量为: "+global_num)
console.log(Numbers.sval) // 静态变量
var obj = new Numbers();
console.log("实例变量: "+obj.num_val)
// 会被js编译为-------------------------- 不重要
var global_num = 12; // 全局变量
var Numbers = /** @class */ (function () {
function Numbers() {
this.num_val = 13; // 实例变量
}
Numbers.prototype.storeNum = function () {
var local_num = 14; // 局部变量
};
Numbers.sval = 10; // 静态变量
return Numbers;
}());
console.log("全局变量为: " + global_num);
console