1. 概念预览
- 基础类型:
布尔值,数字,字符串,数组,元组,枚举,any,void,null,undefined,never,object.
- 类型断言: 有时候,我们比typescript本身更了解某些值的详细信息,我们可以通过断言去标注它,告知编译器,我知道我在干什么.但是,不会进行特殊的数据检查和解构.
- 变量声明:
let与const
2. 代码展示
2.1 基本类型
let isDone: boolean = false;
let decLiteral: number = 6;
let hexLiteral: number = 0xf00d;
let binaryLiteral: nubmer = 0b1010;
let octalLiteral: number = 0o744;
let name: stirng = "bob";
name = "smith"
let list: number[] = [1,2,3];
let list: Array<number> = [1,2,3];
let x: [string,number];
x = ["hello",10];
x = [10,"hello"];
x[3] = "world";
enum Color {Red,Green,Blue}
let c: Color = Color.Green;
enum Color {Red = 1, Green, Blue}
let c: Color = Color.Green;
enum Color {Red = 1, Green = 2, Blue = 4}
let c: Color = Color.Green;
enum Color {Red = 1, Green = 2, Blue = 4}
let colorName: string = Color[2];
let notSure: any = 4;
notSure = "maybe a string instead";
notSure = false;
let notSure: any = 4;
notSure.ifItExists();
notSure.toFixed();
let prettySure: Object = 4;
prettySure.toFixed();
let list: any[] = [1,true,"free"];
list[1] = 100
function warnUser(): void {
console.log("This is my warning message");
}
let unusable: void = undefined;
let n: null = null;
let u: undefined = undefined;
function error(message: string):never {
throw new Error(message);
}
function fail() {
return error("Something failed");
}
function infiniteLoop():never {
while (true) {
}
}
- Object
object就是非原始类型,也就是除了number,string,boolean,symbol,null或undefined之外的类型
使用object类型,就可以更好的表示像Object.create这样的API.例如
declare function create(o:object| null):void;
create({prop:0});
create(null);
create(42);
create("string")
create(false)
create(undefined)
2.2 类型推断
let someValue: any = "this is a string";
let strLength:number = (<string>someValue).length;
let someValue: any = "this is a string";
let strLength:number = (someValue as string).length;
2.3 变量声明
var a = 10;
function f(shouldInitialize: boolean) {
if (shouldInitialize) {
var x = 10;
}
return x;
}
f(true);
f(false);
for (var i = 0; i < 10; i++) {
setTimeout(function() { console.log(i); }, 100 * i);
}