var [变量名] : [类型] = 值; var fcname:string = "Wen River Heavy Industy"; var [变量名] : [类型];
- var fcname:string;
- console.log(fcname,typeof(fcname));
- //undefined undefined
既然此时类型仍然是undefined,那么设置fcname的类型有什么用呢?
如果我们之后给fcname赋值,比如fcname=1,那么会报错,因为赋的值不是string类型

- var fcname='Wen River';
- console.log(fcname,typeof(fcname));
- //Wen River string
fcname 的类型。在这个例子中,因为 fcname 是用一个字符串初始化的,TypeScript 会推断其类型为 string。- var fcname;
- console.log(fcname,typeof(fcname));
- //undefined undefined
类型断言可以用来手动指定一个值的类型,即允许变量从一种类型更改为另一种类型
<类型>值
或者:
值 as 类型
value 或 value as Type 是一种告诉编译器我们比它更了解该值的类型的方法。- var str = '1'
- var str2:number = <number> <any> str //str、str2 是 string 类型
- console.log(str2)
- //1
这里如果直接
var str2:number = <number> str
是会报错的:

TypeScript 断言的规则设计是保守的。它不允许直接将字符串(string)断言为数字(number),因为这两者的内部结构和方法是不同的,没有足够的相似性
TypeScript 有以下几种作用域:
全局作用域 − 全局变量定义在程序结构的外部,它可以在你代码的任何位置使用。
类作用域 − 这个变量也可以称为 字段。类变量声明在一个类里头,但在类的方法外面。 该变量可以通过类的对象来访问。类变量也可以是静态的,静态的变量可以通过类名直接访问。
局部作用域 − 局部变量,局部变量只能在声明它的一个代码块(如:方法)中使用。
- 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)
- /*
- 全局变量为: 12
- 10
- 实例变量: 13
- */